如果我运行 go test <package_name>
,我的包测试用例分散在多个文件中它运行包中的所有测试用例。
虽然没有必要运行所有这些。有没有办法为 go test
指定文件?运行,以便它只运行文件中定义的测试用例?
最佳答案
有两种方法。最简单的方法是使用 -run
标志并提供与您要运行的测试名称匹配的模式。
例子:
$ go test packageName -run NameOfTest
见 docs了解更多信息。
请注意,如果 -run
标志包含字符串 NameOfTest
,则它们也可以运行其他测试,因为 -run
标志与正则表达式匹配.
所以为了确保只运行一个名为“NameOfTest”的测试,
必须使用正则表达式 ^NameOfTest$
:
$ go test -run "^NameOfTest$"
另一种方法是命名特定文件,其中包含您要运行的测试:
$ go test foo_test.go
但有一个问题。如果满足以下条件,这很有效:
foo.go
在package foo
中。foo_test.go
位于package foo_test
并导入 'foo'。
如果 foo_test.go
和 foo.go
是同一个包(常见情况),那么您必须命名构建 foo_test所需的所有其他文件
。在此示例中,它将是:
$ go test foo_test.go foo.go
我建议使用 -run
模式。或者,在可能的情况下,始终运行所有包测试。
关于go - 如何在指定文件中运行测试用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16935965/