我使用Go的本地测试工具(go test
)编写测试。但是当测试由于测试代码中的错误而失败时,由于缺乏堆栈跟踪或任何其他上下文信息,我真的无法调试它。
并且,测试代码需要一个上下文对象t
,因此在正常模式下运行测试代码并不简单。
如何最好地调试测试代码?
t.Log(string(debug.Stack()))
文档在这里 https://golang.org/pkg/runtime/debug/#Stack
它比PrintStack
更好,因为它不会干扰常规测试日志。
您可以使用 t.Log()
记录测试用例的信息 -- 如果测试用例失败或者您运行 go test -v
,go会显示这些输出。
您也可以使用 panic 断言测试中的某些状态 -- 如果一个测试发生了 panic,您将在控制台上看到跟踪信息。
我不知道您是否想在代码中使用此方法,但对于一次性的调试,PrintStack方法可能会有所帮助。http://golang.org/pkg/runtime/debug/#PrintStack
fmt
包来打印一些内容。 - eonil