2010-08-20 4 views
5

Возможно ли использование Cobertura, чтобы он игнорировал определенные биты кода, которые идентифицируются начальными и конечными комментариями?Конфигурировать cobertura для игнорирования определенных блоков кода

Например,

public class Foo { 

    public void static doSomething() { 
     ... 
     // Cobertura-Ignore-Start 
     ... 
     // Cobertura-Ignore-End 
} 

приведет к Cobertura не включая код между началом и в конце комментария при расчете статистики покрытия.

Редактировать: Я использую задачу cobertura Ant.

+0

Почему вы хотите это сделать? –

+0

Множество причин, но я приведу пример. Допустим, у вас есть тестовый класс, и код выглядит так: public void testSomething() {try {doSomething(); потерпеть неудачу(); } catch (Exception e) {// check exception}} - так по существу это тестирование, чтобы makeSomething() выдавал исключение, но fail(); никогда не будет вызвана, если ваш тест не будет нарушен. Поэтому, если вы хотите 100% -ный охват тестирования, и если все ваши тесты пройдут так, как они должны, строка, содержащая fail(); необходимо будет обозначить как линию, которая не должна проверяться кобертурой. Надеюсь, это имело какой-то смысл. – digiarnie

+0

Как не получится вызов, влияет на охват вашего кода ... так как это часть тестового класса ... –

ответ

5

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

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

0

Вы можете игнорировать на уровне класса только насколько я знаю (что означает, что любой метод из игнорируемых классов не учитывается, он инструментарий, хотя и не ускоряется при этом).

Смежные вопросы