Maven 2 似乎没有考虑我的 @Test 和 @Ignore 注释。如何配置surefire插件以运行和使用注释?
这个问题仍然没有答案。
我首先将您的主 POM 配置为将 surefire 插件默认为最新版本。这是通过向 POM 的插件管理部分添加一个条目来完成的。例如:
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.3</version>
</plugin>
</plugins>
</pluginManagement>
现在将使用此版本的插件配置所有子 POM,该版本支持 JUnit 4.x 注释。
如果这不起作用,那么我会确保您的 JUnit 测试文件与 surefire 插件期望的命名模式相匹配,默认情况下是:**/Test*.java
、**/*Test.java
和**/*TestCase.java
. 我喜欢将我的 JUnit 类命名为*Tests.java
,所以我像这样调整插件:
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.3</version>
<configuration>
<includes>
<include>**/*Test*.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</pluginManagement>
要使用 JUnit 4.x,您至少需要使用 2.3 版的 surefire-plugin(有关详细信息,请参阅Codehaus Jira 上的SUREFIRE-31 )。请注意,现在通常认为对所有插件进行版本控制是一种好习惯(从 Maven 2.1 开始,通用插件现在在super POM中进行版本控制)。
如果测试失败并且您使用的是 2.3+ 的 surefire 插件,您能否使用您正在使用的 POM 配置更新您的问题?