【问题标题】:Ginkgo to cobertura and JUnit银杏到 cobertura 和 JUnit
【发布时间】:2019-05-12 05:23:31
【问题描述】:

我使用 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 文件。

我见过how to generate the JUnit file from a test suite,但在我的项目中,我们有多个测试套件,这将导致多个 JUnit 文件,这是我不想要的。

任何想法,我该如何转换和使用它们?

【问题讨论】:

    标签: go junit cobertura ginkgo shippable-ci


    【解决方案1】:

    创建 Cobertura 格式:

    没关系,我自己想通了。

    使用设置的covermode生成封面

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

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

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

    最后,转换为 Cobertura

    bash gocov convert shippable/codecoverage/coverage-fix.out | gocov-xml > shippable/codecoverage/coverage.xml

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多