一尘不染

为什么`go test -run NotExist`通过?

go

如果我运行以下

go test -run NotExist

响应为“通过”。看到我的测试文件不包含称为的测试,TestNotExist我希望上面的命令返回FAIL


阅读 221

收藏
2020-07-02

共1个答案

一尘不染

如果没有该-run选项,go test则会运行所有测试。您可以使用-run选项 不运行所有测试 ;以 过滤掉 ,以 排除
测试(和你的形式做到这一点 ,需要 的非排他性的测试名称 匹配 正规表达式模式-但这是无关紧要的形式讨论的点):

命令去,测试包:

默认情况下,go test不需要参数。它使用当前目录中的源代码编译和测试软件包,包括测试,然后运行测试。

测试标志说明:

-run regexp
   Run only those tests and examples matching the regular expression.

过滤可以过滤掉所有测试,这是一个完全“正常”的结果,没有测试保留在仍然需要执行的测试集中。

如果没有测试失败,则将其视为测试运行通过。如果没有匹配的测试,则不会运行任何测试,也不会失败,因此测试运行会通过。

2020-07-02