2016-09-06 6 views
-1

Я, следуя инструкциям в: http://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.htmlисключая тесты JUnit в Maven

и я использую исключающий в моем pom.xml, но не кажется, что это будет работать.

Вот фрагмент кода:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.19.1</version> 
    <configuration> 
     <argLine>${surefireArgLine}</argLine> 
     <excludes> 
     <exclude>${project.basedir}Test1.java</exclude> 
     </excludes> 
    </configuration> 
</plugin> 
+0

, когда я звоню МВН с MVN чистую установку - я должен GIV Это конкретный аргумент, чтобы включить «исключить»? –

+0

Вы просто пытаетесь исключить все тесты или просто те, имена файлов которых соответствуют некоторому Regex? –

ответ

1

Если файл тестового класса называется Test1.java он будет автоматически включен в тестовом классе по безошибочному, так как он соответствует подстановочным **/Test*.java (один из включенных по умолчанию, см ссылку на ваш вопрос). Если вы хотите исключить конкретный тест, вам нужно изменить свой тег <exclude>, так как есть две проблемы с ним.

(1) вы не имеете разделитель между BASEDIR (например ${project.basedir}/Test1.java

(2) Классы в мавена обычно находятся в структуре каталогов (также один, если есть пакет кроме по умолчанию .. .., которые должны быть), например, что-то вроде ${project.basedir}/src/test/java/com/foo/Test1.java

вы должны исключить реально использовать подстановочные знаки, а также:

<exclude>**/Test1.java</exclude>

Если вместо этого вы просто хотите пропустить все тесты, которые можно использовать аргумент skipTests:

mvn clean install -DskipTests

0

${project.basedir} относится к корневой папке module/project. Поэтому, если Test1 лежит под корневой папкой, он обязательно будет исключен командой goalfire default-test, как только вы исправите свой оператор исключения до <exclude>${project.basedir}/Test1.java</exclude>.

Если корневая папка не является местом, где Test1 находится то карта расположение Test1 с другими переменными Maven POM here или использовать подстановочные вместо этого, следующим образом:

<build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.19.1</version> 
       <configuration> 
        <argLine>${surefireArgLine}</argLine> 
        <excludes> 
         <exclude>**/Test1.java</exclude> 
        </excludes> 
       </configuration> 
      </plugin> 
     </plugins> 
</build> 

Или более экологически чистых способов является create the property for the tests to exclude и использовать его как часть Maven конфигурации плагина верный следующим образом:

<properties> 
     <exclude.tests>**/Test1.java</exclude.tests> 
</properties> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.19.1</version> 
       <configuration> 
        <argLine>${surefireArgLine}</argLine> 
        <excludes> 
         <exclude>${exclude.tests}</exclude> 
        </excludes> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
Смежные вопросы