我们升级到了Sonar 5.2。但是现在,处理声纳报告的任务失败了:

2015.12.21 16:08:20 ERROR [o.s.s.c.t.CeWorkerRunnableImpl] Failed to execute task AVHFFR9SqYJURQAYr8yb
java.lang.IllegalArgumentException: There's no changeset on line 59
    at com.google.common.base.Preconditions.checkArgument(Preconditions.java:125) ~[guava-17.0.jar:na]
    at org.sonar.server.computation.scm.ScmInfoImpl.getChangesetForLine(ScmInfoImpl.java:64) ~[sonar-server-5.2.jar:na]
    at org.sonar.server.computation.scm.DbScmInfo.getChangesetForLine(DbScmInfo.java:69) ~[sonar-server-5.2.jar:na]
    at org.sonar.server.computation.step.NewCoverageMeasuresStep$NewCoverageCounter.initialize(NewCoverageMeasuresStep.java:391) ~[so

如果我卸载版本为1.6.3的Cobertura插件,则报告过程将正常进行。但这对我来说不是解决方案,因为我需要这些报告。是否有人以其他方式成功解决了此错误?

问候

最佳答案

两个想法:

1)您的问题似乎与this discussion on SonarQube's group有关。检查line number="0"中是否有这样的cobertura.xml file。不幸的是,该修复程序计划用于SonarQube 5.4(即04 / Mar / 16。)

2)根据您与Cobertura报告生成相关的确切需求,如果您使用的是Maven,则可以尝试使用QualInsight Maven Cobertura plugin生成Cobertura报告。此插件提供了qualinsight-mojo-cobertura-core mojo,如果您的构建基于Maven,则可能会替代cobertura-maven-plugin mojo。 QualInsight Maven Cobertura插件可为UT,IT生成单独的报告,并合并总体测试范围。它会生成标准的cobertura.xml报告,但也能够将其转换为SonarQube Generic Test Coverage plugin格式。

也许qualinsight-mojo-cobertura-core生成的报告将不包含导致问题的数据+也许使用SonarQube的Generic Coverage插件而不是SonarQube的Cobertura插件不会引起您的异常(它已于9天前发布,并针对SQ 5.2进行了测试,而Cobertura插件最后发布于2014年9月)

如果想尝试一下并需要帮助/对此解决方案有疑问,只需询问(我是开发人员QualInsight Maven Cobertura插件)。

问候,

关于jenkins - Sonar 5.2和Cobertura插件不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34418654/

10-11 21:41