jck28-lucio-junit5并行-@execution【进阶】

## @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)

## 优先级

  • 配置文件进行配置,测试类上添加单线程注解

注解的优先级高于配置优先级

## 结论

  • 配置文件的配饰是全局生效

  • 注解是针对具体测试类或测试方法

  • 注解的优先级 高于 > 配置文件