SonarQube + Jacoco - Невозможно прочитать тестовое покрытие модуля Koin - PullRequest
0 голосов
/ 13 декабря 2018

У меня возникают некоторые проблемы при попытке импортировать покрытие кода Jacoco в сонар, это происходит со всеми модулями Koin.

Версия сонара: 7.5.0.20127

версия Jacoco: 0.8.2

Erro:

       ERROR: Cannot import coverage information for file 'mmaccount/src/main/java/br/com/project/mmaccount/di/AccountModule.kt', coverage data is invalid. Error: {}
java.lang.IllegalStateException: Line 84 is out of range in the file mmaccount/src/main/java/br/com/project/mmaccount/di/AccountModule.kt (lines: 83)
    at org.sonar.api.internal.google.common.base.Preconditions.checkState(Preconditions.java:197)
    at org.sonar.api.batch.sensor.coverage.internal.DefaultCoverage.validateLine(DefaultCoverage.java:93)
    at org.sonar.api.batch.sensor.coverage.internal.DefaultCoverage.lineHits(DefaultCoverage.java:81)

И из-за этого мой класс модуля имеет 0% покрытия o, но если я посмотрюHTML-отчет, кажется, работает нормально:

Jacoco HTML-отчет

Это происходит только с моими модулями Koin, я не уверен, что проблема в том, как Koinработает или какая-то несовместимость между Jacoco и Kotlin

1 Ответ

0 голосов
/ 04 февраля 2019

У меня была такая же проблема, похоже, это была проблема jacoco при создании отчета, дополнительная информация по этому вопросу: https://github.com/jacoco/jacoco/issues/763

Решение: обновление до 0.8.3 , который был выпущен с исправленной проблемой.

С новой версией jacoco мои классы с нулевым охватом сонара теперь имеют реальное покрытие.

...