当Go单元测试失败时,“go test”将显示如下消息:
---失败:TestFillDeepStruct(0.00s)
但是包含失败测试的文件名称(在本例中为Deep_test.go)是什么。我找不到“去测试”这样做的选项。我有很多测试文件,grep测试函数名称很繁琐。
答案 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