Сонар 5.2 и плагин Cobertura не работает
Мы обновились до 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
Если я удалю плагин Cobertura, который имеет версию 1.6.3, то процесс отчета работает нормально. Но это не решение для меня, потому что мне нужны эти отчеты. Кому-нибудь удалось решить эту ошибку по-другому?
С уважением
1 ответ
Две мысли:
1) Ваша проблема, похоже, связана с этим обсуждением в группе SonarQube. Проверьте, есть ли у вас такие line number="0"
в вашем cobertura.xml file
, К сожалению, исправление планируется для SonarQube 5.4 (т.е. 04 / Mar / 16.)
2) В зависимости от ваших конкретных потребностей, связанных с генерацией отчетов Cobertura, и, если вы используете Maven, вы можете попробовать использовать плагин QualInsight Maven Cobertura для создания отчетов Cobertura. Этот плагин обеспечивает qualinsight-mojo-cobertura-core
моджо, альтернатива cobertura-maven-plugin
mojo, который вы, вероятно, используете, если ваша сборка основана на Maven. Плагин QualInsight Maven Cobertura генерирует отдельные отчеты для UT, IT и комбинированного покрытия Total Test. Генерирует стандарт cobertura.xml
отчеты, но также может конвертировать их в формат плагина SonarQube Generic Test Coverage.
Возможно сгенерированные отчеты qualinsight-mojo-cobertura-core
не будет содержать данных, вызывающих проблемы + возможно, использование плагина Genaric Coverage SonarQube вместо плагина SonarQube Cobertura не вызовет исключение, которое вы получите (оно было выпущено 9 дней назад и проверено на соответствие SQ 5.2, тогда как плагин Cobertura последний раз выпускался в сентябре 2014 года)
Если вы хотите попробовать и вам нужна помощь / есть вопросы по этому решению, просто спросите (я разработчик плагина QualInsight Maven Cobertura.)
С Уважением,