Golang如何使用testing.T记录日志

19次阅读

推荐使用 t.Log、t.Logf 和 t.Error记录 go 测试日志,这些方法 线程 安全且仅在失败或加 - v 时显示;t.Log 输出调试信息,t.Logf 支持格式化,如 t.Logf(“ 输入值: a=%d, b=%d”, a, b);运行 go test - v 可查看日志;t.Error 和 t.Errorf 记录错误并标记失败但继续执行,适合收集更多上下文信息。

Golang 如何使用 testing.T 记录日志

在 Go 的 testing.T 中记录日志,推荐使用 t.Logt.Logft.Error 等方法。这些方法会在线程安全的前提下输出测试日志,并且只有在测试失败或使用 -v 标志运行时才会显示,避免污染正常输出。

t.Log 和 t.Logf:记录调试信息

在测试过程中添加上下文信息有助于排查问题。你可以使用 t.Log 输出变量值或执行状态。

示例:

func TestAdd(t *testing.T) {
  a, b := 2, 3
  t.Log(“ 开始计算 a + b”)
  t.Logf(“ 输入值: a=%d, b=%d”, a, b)
  result := a + b
  if result != 5 {
    t.Errorf(“ 期望 5,但得到 %d”, result)
  }
}

仅在失败时输出:减少噪音

默认情况下,t.Log 的内容不会打印。要查看这些日志,需在运行测试时加上 -v 参数:

立即学习go 语言免费学习笔记(深入)”;

go test -v

这样所有 t.Log 和 t.Logf 的输出都会显示出来,便于调试。

使用 t.Error 自动记录并标记失败

t.Errort.Errorf 不仅会记录信息,还会将测试标记为失败,但继续执行后续代码(与 t.Fatal 不同)。

Golang 如何使用 testing.T 记录日志

如知 AI 笔记

如知笔记——支持 markdown 的在线笔记,支持 ai 智能写作、AI 搜索,支持 DeepseekR1 满血大模型

Golang 如何使用 testing.T 记录日志27

查看详情 Golang 如何使用 testing.T 记录日志

适合在发现异常但还想收集更多信息时使用。

示例:

if result   t.Errorf(“ 结果不应为负数: %d”, result)
  t.Log(“ 可能输入了非法参数 ”)
}

并发 测试中的日志安全

Go 的 testing.T 对 t.Log 等方法做了线程安全处理,即使在 t.Parallel 并发测试中也可以放心调用。

每个 goroutine 中使用 t.Log 不会导致输出混乱,日志会正确关联到对应测试。

基本上就这些。合理使用 t.Log 能让测试更易维护,又不干扰正常使用。记得加 -v 才能看到输出。

站长
版权声明:本站原创文章,由 站长 2025-10-26发表,共计1034字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
1a44ec70fbfb7ca70432d56d3e5ef742
text=ZqhQzanResources