排除特定测试在jUnit中并行运行

BSJ:

最近,我在Java项目的pom.xml文件中指定以下内容,偶然发现了一种通过jUnit并行执行测试的简单方法:

<plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-surefire-plugin</artifactId>
 <configuration>
  <parallel>classes</parallel>
 </configuration>
</plugin>

我发现有2个测试类(我们称它们为“ badtestclass1”和“ badtestclass2”)由于编写测试的方式而不断受到这种并行执行的惩罚。理想情况下,我会重构这些测试类以使其表现更好,但是在此期间,我想知道是否存在一种巧妙的方法来“排除”这些特定的类以使其无法并行执行。基本上,有一种方法可以并行执行其他所有操作,然后依次执行这2个操作(或其他顺序无关紧要)。会进行以下工作吗?

<plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-surefire-plugin</artifactId>
 <configuration>
  <parallel>classes</parallel>
  <excludes>
   <excludesFile>badtestclass1</excludesFile>
   <excludesFile>badtestclass2</excludesFile>
  </excludes>
 </configuration>
</plugin>
卢国宝:

在原始测试短语中排除这两个测试,然后使用在单个线程中运行的那两个类创建一个新的执行?:)

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <excludes>
            <exclude>path/to/your/class/badtestclass1.java</exclude>
            <exclude>path/to/your/class/badtestclass2.java</exclude>
        </excludes>
        <parallel>classes</parallel>
    </configuration>

    <executions>
        <execution>
            <id>single-thread-test</id>
            <phase>test</phase>
            <goals>
                <goal>test</goal>
            </goals>
            <configuration>
                <includes>
                    <include>path/to/your/class/badtestclass1.java</include>
                    <include>path/to/your/class/badtestclass2.java</include>
                </includes>
                <threadCount>1</threadCount>
            </configuration>
        </execution>
    </executions>
  </plugin>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章