使用go test(golang)查找失败的测试文件名

时间:2017-06-02 05:00:41

标签: unit-testing go

当Go单元测试失败时,“go test”将显示如下消息:

---失败:TestFillDeepStruct(0.00s)

但是包含失败测试的文件名称(在本例中为Deep_test.go)是什么。我找不到“去测试”这样做的选项。我有很多测试文件,grep测试函数名称很繁琐。

1 个答案:

答案 0 :(得分:2)

使用-v(详细)标记:

» go test -v example                                                                                                                                         === RUN   TestReturn
--- FAIL: TestReturn (0.00s)
    ex_test.go:10: /home/user/go/src/example
    ex_test.go:11: Expected 42, got 43
FAIL
exit status 1
FAIL    example 0.002s

如果某些测试不显示错误行,您可以使用这个简单的bash函数:

function find_failed_tests(){
    FAIL_FILE="/tmp/failed.tmp"
    go test example | grep "^--- FAIL" | awk '{print $3}' > $FAIL_FILE
    grep -rf $FAIL_FILE  ~/go/src/$1
    rm -rf $FAIL_FILE
}

# Usage:
find_failed_tests example