详细运行测试套件,但排除日志

时间:2018-06-28 21:05:03

标签: go

我正在开发一个使用log软件包并记录各种情况的软件包。

我想在我的软件包上运行go test -v ./...并输出通过/失败 所使用的log的测试列表。这对我很有帮助,因为我可以概览整个测试套件,而不会被特定于测试的输出所困扰。

go help testflag的文档中,它说:

    -v
        Verbose output: log all tests as they are run. Also print all
        text from Log and Logf calls even if the test succeeds.

是否有一种方法可以将这两个功能分开,并在没有go test的情况下将log all tests as they are run设置为print(ing) all text from Log and Logf calls even if the test succeeds

1 个答案:

答案 0 :(得分:0)

您没有提供示例输出,因此我无法给出code的答案。但是,如果您使用的是Unix机器,则可以使用go test -v ./... | grep <your_patter_of_interest>提取具有特定模式的输出行。

一个简单示例,示例输出改编自How to Write Go Code

原始输出:

$ go test

ok      github.com/user/stringutil        0.165s
ok      github.com/your/important/package 0.918s
log: passed a certain milestone
log: my code is great!
ok      github.com/another/great/package  0.124s
warning: hey there!

过滤后的输出:

$ go test | grep "ok"

ok      github.com/user/stringutil        0.165s
ok      github.com/your/important/package 0.918s
ok      github.com/another/great/package  0.124s