2017-02-15 24 views
2

До сих пор я исключаю определенные классы в зависимости от их имен пакетов или имен классов. Можно ли каким-либо образом исключить Enums, как указано ниже, из охвата?Исключить классы enum из охвата кода?

package com.*; 

public enum Quality { 
    high,normal,low; 
} 

Для покрытия Я использую Maven-безошибочный-плагин с JUnit и JMockit. И моя настройка покрытия выглядит так:

<build> 
<plugins> 
.... 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.18.1</version> 
    <dependencies> 
     <dependency> 
      <groupId>org.apache.maven.surefire</groupId> 
      <artifactId>surefire-junit4</artifactId> 
      <version>2.18.1</version> 
     </dependency> 
    </dependencies> 
    <configuration> 
     <systemPropertyVariables> 
      <coverage-excludes>com.test.*,*IT.java</coverage-excludes> 
     </systemPropertyVariables> 
    </configuration> 
</plugin> 
.... 
</build> 
<dependencies> 
    .... 
     <dependency> 
      <groupId>org.jmockit</groupId> 
      <artifactId>jmockit</artifactId> 
      <version>1.17</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jmockit</groupId> 
      <artifactId>jmockit-coverage</artifactId> 
      <version>1.17</version> 
     </dependency> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.11</version> 
     </dependency> 
    ....  
    </dependencies> 
+0

Почему вы хотите исключить перечисление? конечно, если какой-то из вашего производственного кода использует эти перечисления, они будут покрыты иначе, это даст вам указание, что определенное значение не используется. – GauravJ

ответ

1

Свойство исключения принимает регулярное выражение. Вы можете следовать код конвенции в приложении таким образом, что все перечисления имеют общую закономерность в их названии, например QualityEnum.java, то вы можете применить регулярное выражение фильтра в исключающем

<exclude>%regex[*Enum.java], com.test.*</exclude> 

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

+0

да, я могу это сделать. Но я хочу исключить в зависимости от его содержимого, а не имя post-fix. Что если я хочу исключить, допустим, абстрактные классы, ввести другой шаблон исправления post ?, но хорошее предложение! – mavi

+1

Я бы предположил, что это потребует написания новой реализации фильтра исключений для верной ошибки, которая могла бы выполнять операции InstanceOf @mavi –

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

  • Нет связанных вопросов^_^