如何在GOLANG中获取多个文件的覆盖范围

时间:2018-08-01 00:24:09

标签: unit-testing testing go code-coverage go-packages

我在GO-LANG中有一个软件包,其中包含几个实现它的文件。 (所有文件都在同一目录中)

file1: mypackage.go
package mypackage
func f1 () {}

file2: mypackage_addition.go
package mypackage
func f2 () {}

file3: mypackage_test.go
package mypackage
import "testing"
func TestF1 (t *testing.T) { 
    f1()
}

file4: mypackageAddition_test.go
package mypackage
import "testing"
func TestF2 (t *testing.T) { 
    f2()
}

我这样做是为了获得报道:

mypackage> $ tree
.
├── mypackage.go
├── mypackageAddition_test.go
├── mypackageAdditions.go
└── mypackage_test.go

0 directories, 4 files
mypackage> $ go test -v -coverprofile cover.out ./...
=== RUN   TestF2
--- PASS: TestF2 (0.00s)
=== RUN   TestF1
--- PASS: TestF1 (0.00s)
PASS
coverage: 0.0% of statements
ok      github.com/MyDevelopment/mypackage  0.701s  coverage: 0.0% of statements
mypackage> $ go tool cover -html=cover.out -o cover.html
mypackage> $ open cover.html 

enter image description here enter image description here

当我打开html时,只会覆盖f1()。
f2被称为(我在调试中验证了它),并且f2的运行在文本中表示,但在html文件中没有。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

只需重申我的评论

因此,在测试了这一点之后,我想到了同样的事情,但是当我点击下拉列表并切换到mypackage_adding.go时,f2()被覆盖了。它只是在另一个文件中。只需在HTML页面的下拉菜单中更改文件即可。