Eon*_*nil 6 testing debugging go
我使用 Go 的本地测试工具 ( go test) 来编写测试。但是当测试由于测试代码中的错误而失败时,由于缺少堆栈跟踪或任何其他上下文信息,我真的无法调试它。
甚至,测试代码需要一个上下文对象t,因此在正常模式下运行测试代码并不是一件简单的工作。
调试测试代码的最佳实践是什么?
您可以用来t.Log()记录有关测试用例的信息 - 如果测试用例失败或运行,go 将显示输出go test -v
您还可以使用恐慌来断言测试中的某些状态——如果测试出现恐慌,您将在控制台中看到跟踪。
您可以通过这种方式记录堆栈跟踪
t.Log(string(debug.Stack()))
Run Code Online (Sandbox Code Playgroud)
文档在这里https://golang.org/pkg/runtime/debug/#Stack
这比PrintStack因为它不干扰常规测试日志要好。
| 归档时间: |
|
| 查看次数: |
4569 次 |
| 最近记录: |