我遇到了一个问题,即如何在springBootTests和dataJpaTests一个接一个地运行时,并行运行我的 Boot Spring应用程序(Kotlin)中的所有单元测试(因为它们由于并行运行的共享上下文而失败),我的应用程序结构分为不同的模型,每个模型都有它的单元springBootTests和dataJpaTets,如下所示:
- 模块1:
- 单元测试1
- 单元测试2
- 数据jpa测试1
- 数据jpa测试2
- Spring Boot 试验1
- 模块2:
- 单元测试1
- 单元测试2
- 单元测试3
- 数据jpa测试1
- Spring Boot 试验1
我使用了www.example.com中的以下属性https://junit.org/junit5/docs/current/user-guide/#writing-tests-parallel-execution:
junit.jupiter.执行.并行.启用=真
junit.jupiter.execution.parallel.mode.default =并发//每个类中的测试并行运行
junit.jupiter.执行.并行.模式.类.默认值=并发//类并行运行
但这并没有帮助,因为没有办法从并行化中排除springBoot和dataJpa测试。
此外,我尝试在所有dataJpa和springBoot测试中使用@Execution(SAME_THREAD),但是类本身仍然并行运行,测试发生冲突
- i使用--test *test commend一起运行所有测试
1条答案
按热度按时间xdyibdwo1#
Spring使用Junit
默认情况下,JUnit Jupiter测试在单个线程中按顺序运行。
并行运行测试(例如,为了加快执行速度)是从5.3版开始提供的一项试验性功能
来源:https://junit.org/junit5/docs/current/user-guide/#writing-tests-parallel-execution
使用纯Junit
资料来源:
使用spring + maven + junit
第一个
资料来源:
简单测试“几乎并行”
根据this和我的测试,简单的junit测试几乎是并行执行的
mvn test -q -Dtest
注意:如果您在测试中添加了一些相关的线程,则它们将按顺序执行
排除一些测试
根据this,您可以使用**-Dtest**选择或排除特定测试
提示
mvn test -q -Dtest
个