如何在指定的文件中运行testing用例?
我的包testing用例分散在多个文件中,如果我运行go test <package_name>
它会运行包中的所有testing用例。
尽pipe如此,没有必要运行它们。 有没有办法指定一个文件go test
运行go test
,以便它只运行文件中定义的testing用例?
有两种方法。 简单的方法是使用-run
标志并提供一个匹配你想要运行的testing的名字的模式。
例如: $ go test -run NameOfTest
。 有关更多信息,请参阅文档 。
另一种方法是命名特定的文件,包含要运行的testing:
$ go test foo_test.go
但有一个问题。 这个效果很好,如果
- foo.go是包foo
- foo_test.go是包foo_test并导入'foo'。
如果'foo_test.go'和'foo.go'是同一个包(通常的情况),那么你必须命名构build'foo_test'所需的所有其他文件。 在这个例子中它将是:
$ go test foo_test.go foo.go
我build议使用名称模式。 或者,在可能的情况下,始终运行所有包装testing。
@ zzzz的答案大部分都是完整的,但是为了避免其他人从引用的文档中挖掘出来,您可以在一个包中运行一个单独的testing,如下所示:
go test packageName -run TestName
请注意,您要传递testing的名称, 而不是testing所在的文件名。
-run
标志实际上接受一个正则expression式,所以你可以限制testing运行到一个testing类。 从文档:
-run regexp Run only those tests and examples matching the regular expression.
在intelliJ IDEA go-lang插件(我假设在jetbrains Gogland中),你可以在运行>编辑configuration下将testingtypes设置为文件