使用Maven运行JUnit测试套件

12

我已经为运行多个测试用例编写了一个JUnit测试套件。

现在,我希望能够一次性运行我的测试套件类(AllTest.java),以便所有测试都由一个类触发、执行和管理。我知道maven-failsafe-plugin可用,但是否有其他更简单的方法从Maven中调用JUnit测试套件?

我不想使用另一个插件来实现这个功能。

这是我当前的maven-failsafe-plugin配置:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-failsafe-plugin</artifactId>
  <version>2.9</version>
  <configuration>
    <includes>
      <include>**/AllTests.java</include>
    </includes>
  </configuration>
  <executions>
    <execution>
      <id>integration-test</id>
      <goals>
        <goal>integration-test</goal>
      </goals>
    </execution>
    <execution>
      <id>verify</id>
      <goals>
        <goal>verify</goal>
      </goals>
    </execution>
  </executions>
</plugin>

你可以使用默认的 surefire 插件,使用相同的配置。 - Andrew Logvinov
我不想使用maven-failsafe-plugin,并且我已经尝试了surefire插件。但它没有选择被注释为@RunWith(Suite.class)和@SuiteClasses({TestClassMyPOJOBase.class})的类。 - Chetan
您是否在进行单元测试或集成测试?单元测试 => maven-surefire-plugin,集成测试 => maven-failsafe-plugin。不应使用套件工作,因为 Maven-surefire 或 maven-failsafe 将负责运行所有测试。此外,请不要忘记单元测试和集成测试的命名约定。 - khmarbaise
2个回答

14

您可以使用-Dit.test=[package].AllTest(在 surefire 中使用 -Dtest),或在 pom 文件中配置包含的测试:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.22.1</version>
    <configuration>
      <includes>
        <include>AllTest.java</include>
      </includes>
    </configuration>
  </plugin>

2
第二个选项对我有用.. 但是 -Dtest 和 Dit.test=[package].AllTest 对我来说并没有真正起作用.. 我是不是漏掉了什么? - Chetan
我认为直到v2.19.1才支持完全限定的包名。上面的代码片段引用了v2.12.4。 - user6629913

3
您可以使用以下Maven命令运行测试套件:

mvn test

 mvn test -Dtest=x.y.z.MyTestSuite

注意:x.y.z 是包名。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接