我使用 Go 的原生测试工具 (go test
) 来编写测试。但是当测试由于测试代码中的错误而失败时,由于缺少堆栈跟踪或任何其他上下文信息,我真的无法调试它。
甚至,测试代码需要一个上下文对象t
,因此在正常模式下运行测试代码并不是一件简单的工作。
调试测试代码的最佳做法是什么?
最佳答案
您可以通过这种方式记录堆栈跟踪
t.Log(string(debug.Stack()))
文档在这里 https://golang.org/pkg/runtime/debug/#Stack
它比 PrintStack
更好,因为它不会干扰常规测试日志。
关于debugging - 如何查看 Go 程序测试代码的堆栈轨迹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19757462/