去测试 - Junit 结果

问题描述 投票:0回答:2

我的问题是我想从 Go 测试中获取 Junit 报告。问题是这本身是不可能的。我找到了几个可以做到这一点的工具,但出现了一个问题。 我发现了 go-junit-report 工具,非常好,但我无法使用它:

go test -count=1 --run Test ./test/... | tee -a test-output.log

对于此测试执行,我通过管道传输了此“tee”命令,这与 junit 工具不兼容:

go test -v -bench . -count=1 --run Test ./test/... 2>&1 | go-junit-report > report.xml

我该如何克服这个问题?那么,不仅正确执行了 tee 命令,而且还正确执行了 junit 中的报告?

ps:我还发现了 gotestsum 工具,它可以直接与管道命令一起使用,但这意味着更改测试命令,也许还有基础设施,所以不太好。

xml go testing junit tee
2个回答
1
投票

我不知道你想让Tee为你做什么。 如果你只想用一个命令输出两个文件:

go test -v 2>&1 ./... | tee -a coverage.out | go-junit-report > report.xml

0
投票

你不能这样做。

如果 gojunit 不能看到 stderr,则不得使用

2>&1
将 stderr 复制到 stdout,在这种情况下,您会从 test-output.log 中丢失 stderr。

您要么必须牺牲 test-output.log 中的 stderr 输出,要么运行

go test
两次,一次将 stdout 和 stderr 写入 test-output.log,一次通过 gojunit 进行管道传输。

© www.soinside.com 2019 - 2024. All rights reserved.