与 SpringIntegrationSerenityRunner 并行运行不与 maven-surefire 一起使用

问题描述 投票:0回答:1

我正在尝试使用以下配置运行 6 个测试类,每个测试类中有 6-12 个测试用例。但不知何故,到目前为止还没有实现并行性。使用分叉计数我可以做到这一点,但超过 1 个分叉意味着将运行多个进程,并且每个测试都依赖于 1 个 setUp 方法(实际上这个设置方法需要很长时间并且只想运行一次然后使用返回值此后对于下一组测试用例)将运行一次,我们将使用该数据来执行。请帮助,因为我不想创建新进程,而是想通过多个线程运行只是为了实现并行性。

 `     <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <includes>
                    <include>**/stories/**/*.java</include>
                </includes>
                <excludes>
                    <exclude>**/stories/Base*.java</exclude>
                </excludes>
                <testFailureIgnore>true</testFailureIgnore>
                <parallel>all</parallel>
                <threadCountClasses>2</threadCountClasses>
                <threadCountMethods>6</threadCountMethods>
                <threadCount>10</threadCount>
                <!--<forkCount>3</forkCount>-->
                <!--<useUnlimitedThreads>true</useUnlimitedThreads>-->
                <perCoreThreadCount>false</perCoreThreadCount>
            </configuration>
        </plugin>`
java spring junit4 spring-boot-test serenity
1个回答
1
投票

我以某种方式能够使其平行。您必须在 pom.xml 中添加以下行,

<argLine>-Xmx1600m</argLine>

这实际上有助于为每个线程分配 Java 堆内存来操作,以便可以在同一个 JVM 中生成更多的 fork,并可以执行并行测试用例

© www.soinside.com 2019 - 2024. All rights reserved.