如何让Maven Surefire运行所有类和测试?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (13)

我有一个运行一些测试的Java JUnit Selenium测试框架。有两个类,每个类有两个测试。

我有像这样配置的maven surefire

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <forkCount>3</forkCount>
        <reuseForks>true</reuseForks>
        <parallel>methods</parallel>
        <threadCount>100</threadCount>
        <redirectTestOutputToFile>false</redirectTestOutputToFile>
    </configuration>
    <version>2.12.4</version>
</plugin>

我想它同时运行4次测试,但无论怎样的组合threadCountparallelfork,我只能得到1类测试用例在同一时刻运行。看起来这应该有效,谁可以提供解决方案吗?

提问于
用户回答回答于

我在maven中使用以下配置来确保

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>${maven-surefire-plugin.version}</version>
    <configuration>
        <useUnlimitedThreads>true</useUnlimitedThreads>
        <rerunFailingTestsCount>1</rerunFailingTestsCount>
        <parallel>methods</parallel>
        <forkedProcessExitTimeoutInSeconds>2</forkedProcessExitTimeoutInSeconds>
    </configuration>
</plugin>

我相信这是有效的,因为我们的测试套件比以前快得多,并且windows报告正在运行的进程,特别是在运行surefire时大幅增加。

用户回答回答于

您想要并行运行套件,还是并行运行方法或测试?

我找到的并行运行套件的唯一可行解决方案是设置

<property>
   <name>suitethreadpoolsize</name>
   <value>8</value>
</property>

在pom.xml中。其他所有组合都不起作用,因为我需要在同一个JVM上运行测试,而不是启动分叉进程。

扫码关注云+社区

领取腾讯云代金券