当前位置: 首页 > 知识库问答 >
问题:

如何在每个测试类都有自己的并行JVM的情况下运行Maven surefire?

申高峰
2023-03-14

无论我为Maven+Surefire使用什么设置,我从未在我的流程管理器中看到超过一个JVM。我有一台Windows7电脑,有8个物理内核。我运行的是最新的Maven/Surefire/JUnit和JDK8(32位)。

以下内容对我不起作用:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>${maven-surefire-plugin.version}</version>
            <configuration>
                <includes>
                    <include>${default.test.suite}</include>
                </includes>
                <reuseForks>false</reuseForks>
                <forkCount>1.0C</forkCount>
                <parallel>classes</parallel>
                <threadCount>1</threadCount>
<!--
                <useUnlimitedThreads>true</useUnlimitedThreads>
                <parallelOptimized>false</parallelOptimized>
-->
            </configuration>
        </plugin>

(我尝试了reuseforksforkcountparallelcountthreadcountuseunlimitedthreadsparalleloptimized的各种组合。)

共有1个答案

戚侯林
2023-03-14

如果您使用JUnit,首先“parallel”只适用于TestNG,其他一些属性也是如此,所以它们对您没有帮助/没有兴趣:

  • http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html

以下是在JUnit设置中为我们所用的方法(对于TestNG并不是很好地工作,就像在这里发布的:用surefire并行运行test,并用TestNG Jenkins插件正确地显示它们):

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
    <reuseForks>false</reuseForks>
    <forkCount>2.5C</forkCount>
  </configuration>
</plugin>

为了参考,这里有更多关于并行运行测试的小字(包括forkCount解释和示例):

  • http://maven.apache.org/surefire/maven-surefire-plugin/examples/fork-options-and-parallel-execution.html
 类似资料:
  • 问题 我有一堆jUnit测试(许多具有自定义运行器,例如PowerMockRunner或JUnitParamsRunner)都在一些根包下(它们在的不同深度的不同子包中)。 我想收集包<code>tests<code>下的所有测试,并在不同的JVM中并行运行每个测试类。理想情况下,并行化是可配置的,但默认的number_of_cores也完全可以。请注意,我不想在自己的JVM中运行每个方法,而是要

  • 我正在开发一个spring启动应用程序并编写一些junit测试。 但我发现,当我运行任何测试时,tomcat也会启动,这使得这些测试非常缓慢,浪费了很多时间。 当我开发一个SpringMvc应用程序时,junit测试可以在不启动tomcat的情况下运行,这节省了很多时间。 所以,我想问它在那里无论如何要运行启动tomcat的springstart测试?

  • 如何在不使用TestNG或JUnit的情况下并行运行Selenium测试用例。 目前我正在使用命令 客户端(节点)命令: java-jar selenium-server-standalone-2.35.0.jar-角色节点-hub Protocol://host:4444/grid/register-浏览器浏览器名=firefox,平台=WINDOWS maxInstances=3。 但它不起作

  • 问题内容: 我正在尝试使用PHPUnit运行selenium测试用例。我要做的第一件事就是尝试登录功能,它可以完美运行,但是我想运行一个功能来检查登录后页面上的信息,但是它将打开一个新的浏览器,而不是在当前浏览器窗口中继续。这是一个问题,原因是该页面设置为在关闭窗口时删除登录身份验证,因此,如果使用$ this-> url()转到该页面,则会出现我需要登录的错误。这是我现在的代码,它启动浏览器并运

  • 我有一个项目结构: 我用mvn clean:install构建了它,并创建了jar文件。现在,我想使用命令行运行QbsApplicationTests。为此,我在一个目录中放入了两个罐子: 并执行以下命令: 然而,我不断得到以下错误 问题: 我应该如何从控制台运行QbsApplicationTests测试 编辑我还尝试添加以下内容: 到主类,但Intellij一直说无法解析。

  • 我正在尝试将Cucumber集成到现有的Spring Boot项目中 当前项目是单个Maven模块 单元测试(不含Spring上下文)和集成测试(含Spring上下文)组合在同一个测试文件夹中。 我想做的是能够调整我的单元测试和集成测试。 但是一旦我添加了依赖项(为了能够在规范旁边运行Spring上下文),它就要求文件夹中的所有测试都用注释。 下面是我的测试套件,配置为获取测试规范。 是否可以将两