对于类列表(我可以将其指定为包含列表),我想使用 forkMode=always 运行,因为它们会扰乱静态状态(遗留代码)。
对于其余的类(我可以指定为排除上述类),我想使用 forkMode=never 或其他配置来运行。
这样做的动机是,使用 forkMode=always 运行测试需要永远运行,因为类加载器必须重新加载所有内容,只是为了从一个测试类运行测试!
其他一些细节: - 所有测试类必须在同一配置文件中运行(即:-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相反。
关于maven - 在maven中,如何为不同的junit测试类运行单独的配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45888044/