Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 忽略Golang测试覆盖率计算中的代码块_Unit Testing_Go_Code Coverage - Fatal编程技术网

Unit testing 忽略Golang测试覆盖率计算中的代码块

Unit testing 忽略Golang测试覆盖率计算中的代码块,unit-testing,go,code-coverage,Unit Testing,Go,Code Coverage,我正在为我的golang代码编写单元测试,在计算覆盖率时,有几个方法我希望被忽略。这可能吗?如果是这样,怎么做?一种方法是将不希望测试的函数放在一个单独的go文件中,并使用一个build标记防止在测试过程中包含它。例如,我有时在应用程序中使用main.go文件,其中包含主函数,可能还有使用函数,等等,这些都没有经过测试。然后,您可以添加一个测试标签或类似的东西,比如go test-v-cover-tags test,主标签可能看起来像: //+build !test package main

我正在为我的golang代码编写单元测试,在计算覆盖率时,有几个方法我希望被忽略。这可能吗?如果是这样,怎么做?

一种方法是将不希望测试的函数放在一个单独的go文件中,并使用一个build标记防止在测试过程中包含它。例如,我有时在应用程序中使用
main.go
文件,其中包含主函数,可能还有使用函数,等等,这些都没有经过测试。然后,您可以添加一个测试标签或类似的东西,比如
go test-v-cover-tags test
,主标签可能看起来像:

//+build !test

package main

func main() {
    // do stuff
}

func usage() {
    // show some usage info
}

我不知道怎么办。您可以使用-func按函数获取配置文件(请参阅或运行
go tool cover-help
),但这是不同的。您可以编写“测试”来练习代码,但不真正测试任何东西,但这似乎不太好。是的,似乎没有办法测试代码,但在覆盖率报告中忽略它…:/你知道如何在不需要标签的情况下(即默认情况下)做同样的事情吗?@OlegSklyar不,我不相信没有标签你也能做同样的事情。覆盖报告由所有代码进行,并且在<代码> //+Bug测试注释之后的空白行是重要的。代码>+构建注释必须出现在package子句之前,后跟一个空行我还发现标记名中不能有破折号:
单元测试
不起作用,而
单元测试
会起作用。