目录
实战项目
本系列的学习也正是为了将原来的项目,从 junit4 升级到 junit5
junitperf
junit5 的新特性
注解定义
ps: 为了简化说明,删除了其他的属性。
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestTemplate;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.platform.commons.annotation.Testable;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.Set;
/**
* 执行接口
* 对于每一个测试方法的条件配置
* @author bbhou
* @version 1.0.0
* @since 1.0.0
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.ANNOTATION_TYPE, ElementType.METHOD})
@Documented
@ExtendWith(PerfConfigProvider.class)
@TestTemplate
public @interface JunitPerfConfig {
/**
* 执行时间。(单位:毫秒)
* 默认值:默认为 1min
* 这里的执行时间不包含准备时间。
* @return time in mills
*/
long duration() default 60_000L;
}
使用
这样,就可以直接执行该测试方法。不再需要其他额外的注解。
将执行 @ExtendWith(PerfConfigProvider.class)
中对应的实现。
import com.github.houbb.junitperf.core.annotation.JunitPerfConfig;
public class HelloWorldTest {
@JunitPerfConfig(duration = 1000)
public void helloTest() throws InterruptedException {
Thread.sleep(100);
System.out.println("Hello Junit5");
}
}
代码地址
有兴趣的参见 junitperf