Подтвердить что ты не робот

Аннотации Lombok и покрытие кода в Cobertura или аналогичный инструмент

Настроить cobertura для игнорирования определенных блоков кода

Из того, что я прочитал из вышеизложенного, в Кобертуре нет способа исключить данную часть кода из теста и иметь покрытие в тестах.

Это правда?/Возможно ли это в любом другом инструменте?

Я использую Lombok аннотации @Getter, @Setter и т.д., которые являются большими, но они приводят к тому, что они являются "красными" в отчете о покрытии, m test getter и setter methods. - Я хотел бы что-то сделать с этим... Есть ли способ исправить это?

4b9b3361

Ответ 1

Невозможно сначала запустить delombok над тестируемым кодом, скомпилировать его, а затем применить инструмент Cobertura?

Раскрытие информации: Я являюсь одним из разработчиков Project Lombok

Ответ 2

Ломбок добавляет аннотацию @javax.annotation.Generated (1). Но у этой аннотации есть source удержание, т.е. Ваш инструмент охвата больше не видит этого: - (

Lombok 1.16.14 только что зафиксировал issue-1014, добавив вариант для генерации аннотации @lombok.Generated; просто настройте lombok.addLombokGeneratedAnnotation (2).

Cobertura может быть сконфигурирован для пропуска методов с некоторой аннотацией, поэтому большая часть сгенерированного кода не будет учитывать ваш охват.

JaCoCo не предоставляет механизм конфигурации для пропуска некоторых аннотаций. Проблема-15 пытается исправить это (и многое другое) без какой-либо конфигурации.

(1) Если не отключен с lombok.addGeneratedAnnotation, который теперь устарел и должен быть заменен на lombok.addJavaxGeneratedAnnotation
(2) см. lombok config
(3) см. этот комментарий

Ответ 3

В моем случае добавление зависимостей lombock в pom.xml приводит к тому, что cobertura снижает охват Branch Coverage на 70% при удалении, что привело к тому, что Netbeans объявили код как сломанный, поскольку не определено аксессор.

       <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.14.4</version>
            <scope>provided</scope>
        </dependency>

изменить Решение состояло в том, чтобы понизить лоббок. У этой версии были проблемы с текущими конфигурациями сонара. Но я не отвечаю за эти конфиги, поэтому я не понимаю, почему.