如何查看Go程序测试代码的堆栈跟踪?

8

我使用Go的本地测试工具(go test)编写测试。但是当测试由于测试代码中的错误而失败时,由于缺乏堆栈跟踪或任何其他上下文信息,我真的无法调试它。

并且,测试代码需要一个上下文对象t,因此在正常模式下运行测试代码并不简单。

如何最好地调试测试代码?


你可以考虑使用GoConvey,以便在代码出现panic时轻松访问堆栈跟踪。 - Matt
3个回答

9

5

您可以使用 t.Log() 记录测试用例的信息 -- 如果测试用例失败或者您运行 go test -v,go会显示这些输出。

您也可以使用 panic 断言测试中的某些状态 -- 如果一个测试发生了 panic,您将在控制台上看到跟踪信息。


2

1
不,这样行不通。因为在测试模式下,它不会显示常规日志。我不得不使用fmt包来打印一些内容。 - eonil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接