【发布时间】:2023-03-23 17:53:01
【问题描述】:
我使用 Junit 4.8 和 maven 3, 我有可以并行执行的测试,但其他测试不能,因为它可以访问 Oracle 数据库。 我想使用 Junit 类别来指示可以“并行化”的测试和其他测试,并通过使用简单的“mvn 测试”来启动测试。这有可能吗? 我认为我的 Maven 配置是这样的:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
<configuration>
<groups>com.soft.Parallelizable</groups>
<perCoreThreadCount>false</perCoreThreadCount>
<forkMode>perthread</forkMode>
<argLine>-Xms512m -Xmx512m</argLine>
<parallel>classes</parallel>
<threadCount>30</threadCount>
</configuration>
<configuration>
<groups>com.soft.NotParallelizable</groups>
</configuration>
</plugin>
当然它不起作用,但它只是向你展示我想要做什么。 如果有人有想法:)
【问题讨论】:
-
Maven surefire 负责单元测试,这些单元测试应该始终能够并行运行,而 maven-failsafe-plugin 负责的集成测试可能是并行的。听起来您正在混合单元测试和集成测试。
-
一个很好的用例可能是同步测试 DAO 对象,同时让其他模拟 DAO 并行运行的测试。我也会对这个问题的解决方案感兴趣。
标签: java maven junit parallel-processing maven-surefire-plugin