在 maven 中,你如何 运行 为不同的 junit 测试分开配置 类

In maven, how do you run separate configurations for different junit test classes

对于 classes 的列表(我可以将其指定为包含列表),我想 运行 使用 forkMode=always 因为它们会扰乱静态(遗留代码) .

对于剩余的 classes(我可以指定为排除上面的 classes),我想 运行 使用 forkMode=never 或其他一些配置。

这样做的动机是,使用 forkMode=always 时,测试将永远持续到 运行,因为 classloader 一直不得不重新加载所有内容,只是为了 运行 个测试 class!

其他一些细节: - 所有测试 classes 必须 运行 在同一配置文件中(即:-P 发布)

是否可以只拥有多个 :

<plugin>
   <artifactId>maven-surefire-plugin</artifactId>

在同一个人资料中?

我能想到的一种方法是定义多次执行:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.19.1</version>
    <executions>
        <execution>
            <id>legacy-tests</id>
            <phase>test</phase>
            <goals>
                <goal>test</goal>
            </goals>
            <configuration>
                <excludes>
                    <exclude>**/RemainingClasses*.java</exclude>
                </excludes>
                <includes>
                    <include>**/LegacyClasses*.java</include>
                </includes>
                <forkMode>always</forkMode>
            </configuration>
        </execution>
        <execution>
             <id>other-tests</id>
             <phase>test</phase>
             <goals>
                 <goal>test</goal>
             </goals>
             <configuration>
                 <includes>
                     <include>**/RemainingClasses*.java</include>
                 </includes>
                 <excludes>
                     <exclude>**/LegacyClasses*.java</exclude>
                 </excludes>
                 <forkMode>never</forkMode>
             </configuration>
        </execution>
   </executions>
</plugin>

另一方面,您可能希望改为使用 reuseForks and forkCount