列出测试但不运行它们

时间:2017-06-13 04:21:53

标签: unit-testing go

如何在不运行go test的情况下列出可用的测试?我想知道哪些测试(包括子测试)存在,所以我可以手动选择它们的一个子集来运行以后的命令。对于像这样的事情我会期待类似go test -lgo test -n的内容。

2 个答案:

答案 0 :(得分:3)

在go1.9中,go test命令接受一个新的-list标志,该标志将正则表达式作为参数并打印到stdout任何与之匹配的测试,基准或示例的名称,没有运行它们。

test flags documentation可以在https://tip.golang.org下找到,直到正式发布。

答案 1 :(得分:1)

没有go子命令,但您可以使用findgrep(GNU版本,-P标志)魔法:

find /path/to/your/project -not -path "./vendor" -type f -name "*_test.go" -exec cat {} \; | grep -oP '^func (\w+)\(\w \*testing\.T\) {$' | grep -oP ' \w+' | grep -oP '\w+';