Maven surefire 2.12 не запускает специальный тест с использованием параметра -Dtest

После обновления всех моих плагинов Maven для проекта я столкнулся со следующей проблемой: когда я запускаю базовую команду mvn test -Dtest=SomeTest, сборка заканчивается без какого-либо теста. На самом деле, я не могу выполнить какой-либо тест с использованием параметра -Dtest (конечно, тест существует и выполняется, когда я просто выполняю mvn test).

После некоторых поисков выясняется, что проблема связана с использованием плагина surefire 2.12. Я тестировал несколько версий Maven (2.2.1/3.0.2) и JUnit (4.7.x, 4.8, 4.10 или даже 3.8.x), но они не влияют на мою проблему.

Итак, может быть, мой проект имеет некоторые конкретные конфигурации, которые могут повлиять на это? Во всяком случае, я создал новый проект, используя mvn archetype:generate (используя базовый org.apache.maven.archetypes: maven-archetype-quickstart).

Я изменил только 2 вещи в pom.xml: используя JUnit 4.10 (но ничего не изменил, я пробовал с другими версиями) и определял версию surefire:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelversion>4.0.0</modelversion>
 <groupid>foo</groupid>
 <artifactid>bar</artifactid>
 <version>1.0-SNAPSHOT</version>
 <properties>
 <project.build.sourceencoding>UTF-8</project.build.sourceencoding>
 </properties>
 <dependencies>
 <dependency>
 <groupid>junit</groupid>
 <artifactid>junit</artifactid>
 <version>4.10</version>
 <scope>test</scope>
 </dependency>
 </dependencies>
 <build>
 <plugins>
 <plugin>
 <groupid>org.apache.maven.plugins</groupid>
 <artifactid>maven-surefire-plugin</artifactid>
 <version>2.11</version>
 </plugin>
 </plugins>
 </build>
</project>

Я запускаю mvn test -Dtest=AppTest (по умолчанию JUnit-тест, созданный архетипом):

------------------------------------------------------- T E S T S
------------------------------------------------------- Running foo.AppTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time
elapsed: 0.031 sec
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO]

Теперь я изменяю pom.xml для использования версии 2.12 для Surefire и снова запускаю команду:

------------------------------------------------------- T E S T S
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO]
------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO]
------------------------------------------------------------------------ [INFO] Total time: 0.907s [INFO] Finished at: Fri Mar 02 10:37:12 CET
2012 [INFO] Final Memory: 3M/15M [INFO]
------------------------------------------------------------------------ [ERROR] Failed to execute goal
org.apache.maven.plugins:maven-surefire-plugin:2.12:test
(default-test) on project bar: No tests were executed! (Set -D
failIfNoTests=false to ignore this error.) -> [Help 1]

Тест на этот раз не выполняется: (

Насколько мне известно, я считаю это регрессией, но это довольно удивительно. Действительно, дефект JIRA записывается в версию Surefire 2.12, и в этом описании им удается использовать параметр -Dtest.

Я что-то делаю неправильно? Или это реальная регрессия (в этом случае я создам JIRA)?

Спасибо.

1 ответ

Это ошибка в версии 2.12 - SUREFIRE-827.

licensed under cc by-sa 3.0 with attribution.