Я использую JaCoCo, и он рассматривает методы, созданные Lombok (сгенерированные в байт-коде, а не трассировка их в исходном коде). Как я могу настроить JaCoCo, чтобы игнорировать их?JaCoCo: исключить сгенерированные методы (используя его с Lombok)
ответ
Используйте тег excludes, предоставляемый jacoco.
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.4.201502262128</version>
<configuration>
<excludes>
<exclude>**/config/**</exclude>
<exclude>**/model/**</exclude>
<exclude>**/item/**</exclude>
</excludes>
</configuration>
Это работает только частично, поскольку фильтры исключают только фильтры. Я думаю, вы исключили бы все сгенерированный код не только для классов. Должен работать для '@ Builder', но не для методов, созданных' @ Data' - все еще обсуждается, см. Https://github.com/jacoco/jacoco/wiki/FilteringOptions. Поскольку lombok добавляет '@ Generated' в сгенерированный код, JaCoCo должен отфильтровать это, но это недостающая функция. –
@ArneBurmeister Это потому, что '@ Generated' имеет удержание == SOURCE, но JaCoCo анализирует только байт-код, поэтому отсутствует эта информация. – namero999
@ namero999 вы правы, наблюдайте за этим, но фильтр аннотаций был бы замечательным, поскольку lombok добавляет свою собственную аннотацию 'lombok.Generated' (не то, что из' javax.annotation'). –
Возможный дубликат [Ломбок аннотациями против покрытия кода в Cobertura или аналогичного инструмента] (http://stackoverflow.com/questions/10276666/lombok-annotations-vs-code-coverage-in-cobertura-or- аналогичный инструмент) –