Bazı Go paketlerimde% 100 kod kapsamı korumaya çalışıyorum. Bu, yapı sistemindeki bir -integration
derleme etiketiyle seçtiğim bazı testlerle bile, her yerde geçerli değildir, ancak nispeten yalıtılmış kitaplık paketlerim için mümkün olmalıdır.Belirsiz hatalarla uğraşırken iyi Go paket kapsamı nasıl korunur?
Yine de, hatalı hata yollarını ele alma konusunda sorun yaşıyorum.
ulaşma:
İştefunc (idx Index) LoadPost(title string) (*PostSpec, string, error) {
postFolder := strings.Replace(strings.ToLower(title), " ", "_", -1)
spec, err := idx.getSpec(postFolder)
if err != nil {
return nil, "", err
}
f, err := os.Open(path.Join(idx.blogdir, postFolder, "content.html"))
if err != nil {
return nil, "", err
}
defer f.Close()
b, err := ioutil.ReadAll(f)
if err != nil {
return nil, "", err
}
return spec, string(b), nil
}
o go tool -cover
gibi görünüyor: Burada
Bu kendi başına bir anlaşma çok fazla değil, ama ben 97.3%
kapsama doğru figür olduğunu hatırlamak zorunda olduğu anlamına gelir. Bu rakamın azaldığını görürsem, sınavlarımı kırdığım ve artık daha fazla kodun kalmadığı anlamına mı geliyor? Ya da sadece paketi sadeleştirme ve kaldırma veya ölü kod ile geliştirmeyi başardım? İkinci tahmine yol açar.
Daha da önemlisi bazı, bir iş bağlamında güzel bir yapı pano önünde bir engel var.
http://golang.org/src/pkg/io/ioutil/ioutil_test.go yanı mevcut dosyaları kullanır. – VonC
Teşekkürler. Ben sadece bu bağlantıyı kontrol ettiğimde ReadFile'ı keşfettim, bu yüzden şimdilik "os.Open()" ve "ioutil.ReadAll()" işlevini tek bir "ioutil.ReadFile()" ile değiştirerek sorunu çözdüm. şimdi her şey kaplıdır. Sanırım sorum yine de geçerli. – Cera