Отключение покрытия clover — не работает

#java #maven #clover

#java #maven #clover

Вопрос:

Я знаю, что мне придется использовать // CLOVER: OFF , чтобы отключить тестовое покрытие clover. Я прочитал https://confluence.atlassian.com/display/CLOVER/Using Источник Директивы

Я добавил эту строку перед объявлением моего класса, например:

// CLOVER: OFF
public class SampleClass{
/*
* Some definitions
*/
}

Эта вещь работала для меня вчера и сегодня терпит неудачу. Я ломаю голову, пытаясь выяснить причину сбоя.

Но моя сборка maven завершилась неудачно, потому что она не соответствовала проценту покрытия. Я использую maven 3.3.9 и eclipse Neon для своего проекта.

Ответ №1:

Это пробел между CLOVER: и OFF, который вызывает проблемы. Вы должны использовать директивы точно так, как это описано в документах

 // CLOVER:ON
// CLOVER:OFF
 

Вы пытаетесь исключить весь файл из инструментария? Если это так, вы можете просто исключить классы из инструментария на уровне Maven или Eclipse. Ссылки на документацию:

Комментарии:

1. Я сделал это, все равно не сработало. Точно такая же строка работала у меня ранее.

2. поправьте меня, если я ошибаюсь. Но я думаю, что это вызвано неправильным размещением строк документа

Ответ №2:

Если вы хотите исключить один полный класс из clover, вы можете сделать это в конфигурации pom.

 <configuration>
  <excludes>
    <exclude>**/SampleClass.java</exclude>
  </excludes>
</configuration>
 

Если вы хотите исключить только один или несколько методов, используйте CLOVER:OFF / CLOVER:ON вокруг них.

 public class SampleClass {
    private int num;

    public SampleClass() {
        // intentionally left blank
    }

    // CLOVER:OFF
    public void setNum(int num) {
        this.num = num;
    }
    // CLOVER:ON
}
 

Остерегайтесь того факта, что clover все равно будет сканировать исключенный код, если в классе больше нечего сканировать, отсюда и пустой конструктор.

Комментарии:

1. Привет, для меня добавление // CLOVER:OFF // CLOVER:ON не работает. Что может быть возможной причиной этого? Нужно ли мне что-либо добавлять в мой файл buid.gradle для этой цели?