## @Execution 注解
-
@Execution
注释用于单独更改测试类或测试方法的模式。 -
有 2 种模式,
CONCURRENT
模式和SAME_THREAD
模式。
## 配置文件
打开并发运行测试用例
junit.jupiter.execution.parallel.enabled=true
## 添加注解
-
测试类上:注解添加在哪个类上,哪个类对应的所有方法进行并行测试运行
-
测试方法上添加注解
添加到类上
package com.junit5;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.parallel.Execution;
import org.junit.jupiter.api.parallel.ExecutionMode;
*/***
*** *并行执行*
**/*
@Execution(ExecutionMode.CONCURRENT) //并行执行
public class Parallel3_Test {
@Test
void test1(){
System.*out* .println(Thread.*currentThread* ().getName()+" => Parallel3_Test--test1");
}
@Test
void test2(){
System.*out* .println(Thread.*currentThread* ().getName()+" => Parallel3_Test--test2");
}
@Test
void test3(){
System.*out* .println(Thread.*currentThread* ().getName()+" => Parallel3_Test--test3");
}
}
![|420x117](file:///C:\Users\86159\AppData\Local\Temp\ksohtml4804\wps1.jpg)
添加到方法上
package com.junit5;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.parallel.Execution;
import org.junit.jupiter.api.parallel.ExecutionMode;
*/***
*** *并行执行*
**/*
@Execution(ExecutionMode.*SAME_THREAD* ) //顺序执行
public class Parallel3_Test {
@Test
@Execution(ExecutionMode.*CONCURRENT* )
void test1(){
System.*out* .println(Thread.*currentThread* ().getName()+" => Parallel3_Test--test1");
}
@Test
@Execution(ExecutionMode.*CONCURRENT* )
void test2(){
System.*out* .println(Thread.*currentThread* ().getName()+" => Parallel3_Test--test2");
}
@Test
void test3(){
System.*out* .println(Thread.*currentThread* ().getName()+" => Parallel3_Test--test3");
}
}
![|464x169](file:///C:\Users\86159\AppData\Local\Temp\ksohtml4804\wps2.jpg)
## 优先级
- 配置文件进行配置,测试类上添加单线程注解
注解的优先级高于配置优先级
## 结论
-
配置文件的配饰是全局生效
-
注解是针对具体测试类或测试方法
-
注解的优先级 高于 > 配置文件