在升級項目的所有Maven插件版本後,我遇到以下問題:當我運行基本命令mvn test -Dtest=SomeTest
時,構建完成,未完成任何測試。事實上,我無法使用-Dtest
參數運行任何測試(當然,測試存在,並且僅在執行mvn test
時運行)。Maven surefire 2.12未使用-Dtest參數運行特定測試
經過一番搜索,看起來問題是由於使用了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(但它並沒有改變什麼,我試着與他人的版本),並確定萬無一失的版本:
<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的神火,然後再次運行命令:
------------------------------------------------------- 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]
測試不運行這個時間:(
就我個人而言,我認爲這是一個迴歸,但是這是相當令人吃驚。事實上,Surefire 2.12版本中記錄了JIRA defect,在本說明中,他們成功使用了-Dtest
參數。
我做錯了什麼?還是真正的迴歸(在這種情況下,我將創建JIRA)?
謝謝。
問題的新鏈接:https://issues.apache.org/jira/browse/SUREFIRE-827 – 2017-06-22 11:53:41