使用cobertura插件在Jenkins中进行代码覆盖率报告

时间:2016-08-01 20:49:33

标签: jenkins-plugins code-coverage cobertura

我在Jenkins中安装了cobertura插件,并使用以下命令#go test -cover -p 1 $PKGS | go-junit-report > report.xml运行单元测试。我可以看到report.xml是使用代码覆盖创建的,但我在Jenkins控制台中看到以下错误。能告诉我们问题是什么以及如何解决这个问题。

/bin/sh -xe /tmp/hudson1811800402022775798.sh
[Cobertura] Publishing Cobertura coverage report...
FATAL: Unable to find coverage results
java.io.IOException: <workspace>/report.xml is not a cobertura coverage report, please check your report pattern
    at hudson.plugins.cobertura.CoberturaPublisher$ParseReportCallable.invoke(CoberturaPublisher.java:566)
    at hudson.plugins.cobertura.CoberturaPublisher$ParseReportCallable.invoke(CoberturaPublisher.java:536)
    at hudson.FilePath.act(FilePath.java:1018)
    at hudson.FilePath.act(FilePath.java:996)
    at hudson.plugins.cobertura.CoberturaPublisher.perform(CoberturaPublisher.java:343)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:720)
    at hudson.model.Build$BuildExecution.post2(Build.java:185)
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:665)
    at hudson.model.Run.execute(Run.java:1766)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:410)
[Cobertura] No coverage results were found using the pattern '**/report.xml' relative to '<some directory>'.  Did you enter a pattern relative to the correct directory?  Did you generate the XML report(s) for Cobertura?
Build step 'Publish Cobertura Coverage Report' changed build result to FAILURE
Finished: FAILURE

1 个答案:

答案 0 :(得分:0)

我已按照以下步骤生成覆盖率报告(针对去语言)

gocovxml

使用以下命令安装gocov xml

$ go get github.com/axw/gocov/...
$ go get github.com/AlekSi/gocov-xml

如果您有多个包

,请执行go test命令
gocov test $PKGS -p 1 | gocov-xml > report.xml

在发布cobertura覆盖率报告中提供report.xml(在Jenkins中建立后构建操作)

**/report.xml