2015-12-22 68 views
3

我們升級到Sonar 5.2。但現在,處理聲納報告任務失敗:Sonar 5.2&Cobertura Plugin不起作用

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 

如果我卸載的Cobertura插件,它具有版本1.6.3,則該報告的過程正常工作。但這對我來說不是解決方案,因爲我需要這些報告。有人以另一種方式成功解決這個錯誤嗎?

問候

回答

1

兩個想法:

1)您的問題似乎與this discussion on SonarQube's group。檢查您的cobertura.xml file中是否有這樣的line number="0"。不幸的是,修復計劃於SonarQube 5.4(即04 /月/ 16)。

2)根據你的相關的Cobertura實際需求生成報告,如果你正在使用Maven,你可以嘗試使用QualInsight Maven Cobertura plugin來生成Cobertura報道。這個插件提供了qualinsight-mojo-cobertura-core mojo,它可以替代cobertura-maven-plugin mojo,如果你的構建是基於Maven的話,你可能會使用它。 QualInsight Maven Cobertura插件爲UT,IT和綜合測試覆蓋範圍生成單獨的報告。它生成標準cobertura.xml報告,但也能夠將它們轉換爲SonarQube Generic Test Coverage plugin格式。

可能產生由qualinsight-mojo-cobertura-core報告將不包含數據導致問題+也許使用SonarQube的通用覆蓋插件而不是SonarQube的的Cobertura插件不會造成你(它發行的7天前,並朝SQ 5.2測試外,同時該插件的Cobertura在去年發佈了2014年9月)

如果想給它一個嘗試,需要幫助/有這個解決方案的問題,只是問(我開發QualInsight的Maven插件的Cobertura)

問候,

+0

嘿!感謝您的回覆和幫助。我用通用Coverage插件試了一下。因此,您認爲我可以使用Cobertura生成報告,然後在聲納上使用通用Coverage插件而不是cobertura插件? Maven有很多這些警告,然後'[警告] Class'net/sourceforge/cobertura/coveragedata/LightClassmapListener'無法通過ClassLoader訪問。'最後它無法生成報告\ target \ site \ cobertura \ coverage.xml:未知覆蓋版本:2.1.1。這個解析器只能處理版本1. – puzste

+1

嗨,不,你不能使用'cobertura-maven-plugin'的通用覆蓋插件,因爲通用coverage插件不能理解輸出格式。這就是爲什麼我寫了你應該嘗試與替代Maven插件'qualinsight-mojo-corbertura'一起使用它。 – Kraal