【问题标题】:How do I configure maven 2's surefire plugin to run Junit 4.5?如何配置 maven 2 的 surefire 插件来运行 Junit 4.5?
【发布时间】:2009-08-26 17:37:42
【问题描述】:

Maven 2 似乎没有考虑我的 @Test 和 @Ignore 注释。如何配置surefire插件以运行和使用注释?

这个问题仍然没有答案。

【问题讨论】:

  • 你使用的是什么版本的surefire插件?
  • 另外,surefire 是否尝试运行名为 testXXXX() 的类?

标签: maven-2 maven-plugin


【解决方案1】:

我会首先将您的主 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>

【讨论】:

  • 如何在 Maven 中从 pom.xml 调用 testng.xml?
  • 我看到你在pluginManagement中添加了它,但你没有在部分添加它。那是因为 maven 自动包含了surefire插件吗?
  • 是的,它是自动添加的。
【解决方案2】:

要使用 JUnit 4.x,您至少需要使用 2.3 版的 surefire-plugin(有关详细信息,请参阅 Codehaus Jira 上的 SUREFIRE-31)。请注意,现在通常认为对所有插件进行版本控制是一种很好的做法(从 Maven 2.1 开始,通用插件现在在 super POM 中进行版本控制)。

如果测试失败并且您使用的是 2.3+ 的 surefire 插件,您能否使用您正在使用的 POM 配置更新您的问题?

【讨论】:

    猜你喜欢
    • 2018-05-26
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    • 2010-11-19
    • 2015-12-19
    • 2019-06-07
    • 2020-12-31
    • 2010-10-07
    相关资源
    最近更新 更多