【发布时间】:2009-08-26 17:37:42
【问题描述】:
Maven 2 似乎没有考虑我的 @Test 和 @Ignore 注释。如何配置surefire插件以运行和使用注释?
这个问题仍然没有答案。
【问题讨论】:
-
你使用的是什么版本的surefire插件?
-
另外,surefire 是否尝试运行名为 testXXXX() 的类?
标签: maven-2 maven-plugin
Maven 2 似乎没有考虑我的 @Test 和 @Ignore 注释。如何配置surefire插件以运行和使用注释?
这个问题仍然没有答案。
【问题讨论】:
标签: maven-2 maven-plugin
我会首先将您的主 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 配置更新您的问题?
【讨论】: