去测试./package转储成功测试的Stdout,而不仅仅是失败的测试

时间:2019-02-21 15:00:54

标签: go testing

在编写输出到stdout的CLI工具时,我注意到,如果一个测试失败,那么其他也写到stdout的(成功的)测试也会被丢弃,这会产生误导。

这是预期的吗?还是应该在测试时将os.Stdout设置为/dev/null?但是testing包如何找到要打印的内容?

2 个答案:

答案 0 :(得分:2)

无论测试包是否通过,测试包都不会干扰标准代码的标准输出。如果对您来说看不到此输出很重要,则可以在执行特定测试时capture stdout,然后根据测试结果决定如何处理。

答案 1 :(得分:1)

尝试使用-failfast。下面举一个例子。

$ go test -failfast -coverprofile=coverage.out -covermode=count <pkg path>