0


JUnit5用户手册~并行执行

两种运行模式

SAME_THREAD:默认的,测试方法在同一个线程

CONCURRENT:并行执行,除非有资源锁

junit-platform.properties配置参数

配置所有测试方法都并行

junit.jupiter.execution.parallel.enabled = true
junit.jupiter.execution.parallel.mode.default = concurrent

@Execution(CONCURRENT)指定类或方法并行

配置top-level类并行,测试方法同一线程执行

junit.jupiter.execution.parallel.enabled = true
junit.jupiter.execution.parallel.mode.default = same_thread
junit.jupiter.execution.parallel.mode.classes.default = concurrent

配置top-level类串行,测试方法并行

junit.jupiter.execution.parallel.enabled = true
junit.jupiter.execution.parallel.mode.default = concurrent
junit.jupiter.execution.parallel.mode.classes.default = same_thread

相关参数
属性
描述
支持的值默认值
junit.jupiter.execution.parallel.enabled
是否允许并行
true

false
false
junit.jupiter.execution.parallel.mode.default
test tree的默认执行模式
concurrent

same_thread

same_thread

junit.jupiter.execution.parallel.mode.classes.default
top-level类的默认执行模式
concurrent

same_thread

same_thread
junit.jupiter.execution.parallel.config.strategy
默认线程和最大线程数的策略
dynamic

fixed

custom

dynamic

junit.jupiter.execution.parallel.config.dyna mic.factor

dynamic配置的系数
数值1
junit.jupiter.execution.parallel.config.fixed.parallelism
fixed配置的线程数数值无默认
junit.jupiter.execution.parallel.config.custom.class
custom配置的策略类类无默认
2、同步

@Execution(CONCURRENT)
class SharedResourcesDemo {
    private Properties backup;
    
    @BeforeEach
    void backup() {
        backup = new Properties();
        backup.putAll(System.getProperties());
    }
    
    @AfterEach
    void restore() {
        System.setProperties(backup);
    }
    
    @Test
    @ResourceLock(value = SYSTEM_PROPERTIES, mode = READ)
    void customPropertyIsNotSetByDefault() {
        assertNull(System.getProperty("my.prop"));
    }
    
    @Test
    @ResourceLock(value = SYSTEM_PROPERTIES, mode = READ_WRITE)
    void canSetCustomPropertyToApple() {
        System.setProperty("my.prop", "apple");
        assertEquals("apple", System.getProperty("my.prop"));
    }
    
    @Test
    @ResourceLock(value = SYSTEM_PROPERTIES, mode = READ_WRITE)
    void canSetCustomPropertyToBanana() {
        System.setProperty("my.prop", "banana");
        assertEquals("banana", System.getProperty("my.prop"));
    }
}
标签: junit 单元测试 java

本文转载自: https://blog.csdn.net/gqltt/article/details/129913165
版权归原作者 gqltt 所有, 如有侵权,请联系我们删除。

“JUnit5用户手册~并行执行”的评论:

还没有评论