我有一组Sping Boot 集成测试我正在尝试优化。为此,我试图利用应用程序上下文缓存,但在文档中,它说,因为它被存储在一个静态变量中,当使用Gradle forked JVM测试执行时,它不会被有效地使用。
所以我想知道是否有一种方法来定义Gradle应该在同一fork下运行哪组测试类;例如可以共享相同的@WebMvcTest
分片上下文的那些。
例如,具有这些测试类:
- ATest
- BTest
- CTest
我想具体说明如下:
- Fork 1:
- ATest
- BTest
- Fork 2:
- CTest
我只发现JUnit平台提供了Tags标注,对测试进行逻辑分组,然后在Gradle Test任务配置中包含/排除;但我不知道它是否可以用在叉子上。
有没有一种方法可以通过Gradle或Junit配置来实现这一点?(或者甚至可以使用多个Gradle Test任务,我可以并行运行)
1条答案
按热度按时间nnt7mjpx1#
如果您没有显式配置,Gradle将只执行一次分叉。如果你想分叉到多个测试工作者中,那么你就无法控制哪个测试去哪里。
但是,是的,您可以配置多个任务,所有任务都只执行一个分支,并使用标签控制哪个任务运行哪个测试。
另一种可能性是使用支持并行测试执行的JUnit平台引擎。例如Spock和Jupiter都支持这一点,因此您的测试可以利用多处理器并在一个JVM中并行运行。