登录
首页 >  Golang >  Go问答

Ginkgo 到 cobertura 和 JUnit

来源:stackoverflow

时间:2024-04-12 21:36:35 139浏览 收藏

哈喽!今天心血来潮给大家带来了《Ginkgo 到 cobertura 和 JUnit》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

问题内容

我使用 shippable 作为我的 ci,我的项目基于 go 1.11。所有单元测试都是使用 ginkgo 和 gomega 以 bdd 风格编写的。在我的测试管道中,我有类似的内容:

gocov test ./... | gocov-xml > shippable/codecoverage/coverage.xml
go test -v ./... | go-junit-report > shippable/testresults/junitresults.xml

这将创建 cobertura 格式的覆盖率文件和 junit 格式的单元测试报告。

在我的项目中,我们有多个测试套件。我计划使用 ginkgo cli 来执行覆盖率和单元测试,而不是 gocovgo test。像这样的东西:

ginkgo -r -cover -outputdir=./shippable/codecoverage/ -coverprofile=coverage.txt
ginkgo -r -focus="\[Unit\]" -outputdir=./shippable/testresults/ -coverprofile=unit.txt

现在的问题是我无法将coverage.txt 文件转换为等效的cobertura 格式xml 文件(可交付需要)并将unit.txt 文件转换为等效的junit xml 文件。

我已经了解了如何从测试套件生成 junit 文件,但在我的项目中,我们有多个测试套件,这将导致多个 junit 文件,这是我不想要的。

有什么想法,如何转换和使用它们?


解决方案


创建 Cobertura 格式:

没关系,我自己想办法。

使用设置的封面模式生成封面

ginkgo -r -cover -covermode=set -outputdir=shippable/codecoverage/ -coverprofile=coverage.out

现在,我们需要删除 mode 的重复条目:set

awk '!seen[$0]++' 可发货/codecoverage/coverage.out > 可发货/codecoverage/coverage-fix.out

最后,转换为Cobertura

bash gocov 转换可发货/codecoverage/coverage-fix.out | gocov-xml > 可发货/codecoverage/coverage.xml

好了,本文到此结束,带大家了解了《Ginkgo 到 cobertura 和 JUnit》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>