"去测试"报告错误的声明范围

时间:2016-03-19 13:34:33

标签: go

我有一个只有两个Go文件的package:一个定义主函数,另一个定义测试。

现在假设我有cd进入此程序包并运行以下命令:

$ go test -cover
PASS
coverage: 41.8% of statements
ok      github.com/suzaku/dummage       0.010s

如您所见,这可以正常工作。

但是我想生成一个HTML报告,所以在谷歌搜索后我使用以下命令:

$ go test -run=Coverage -coverprofile=c.out github.com/suzaku/dummage
ok      github.com/suzaku/dummage       0.010s  coverage: 1.8% of statements

请注意,这次覆盖率降至1.8%。

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:3)

您确定在go测试中需要-run=Coverage标志吗?这意味着它只会运行与Coverage匹配的测试。如果您只想为该测试生成封面配置文件,请运行go test -coverprofile c.out github.com/suzaku/dummage。然后,您可以运行go tool cover -html c.out来查看HTML报告。

如果您故意添加-run=Coverage,那么它的预期行为 - -run=Coverage期间运行的代码量远少于运行所有测试时的代码量,并且计算了测试覆盖率对于整个包裹。