【发布时间】:2019-05-03 03:55:39
【问题描述】:
测试包捕获所有输出并且不会打印它,除非测试失败或详细 (-v) 已打开。有没有办法在套件完成后输出文本而不需要打开详细信息?
例如:
func TestMain(m *testing.M) {
status := m.Run(m)
fmt.Println("important line to output")
os.Exit(status)
}
不会打印该行。
编辑:我发现 fmt.Println 将在您从包内部运行测试 (go test) 时有效,但如果指定一个或多个包 (go test ./...) 则不会,除非 -v 选项已启用。
【问题讨论】:
-
您是在问如何在测试通过后获得输出,但在没有设置
-v标志的情况下运行? -
不,我想在所有测试完成后输出一些文本,而不需要
-v标志。 -
测试中的输出通常不会发送到标准输出,以防出错。这很重要,因为如果您在详细模式下运行大型项目的测试,您将获得大量通过测试的不重要输出。