Launcher
从字面可以了解,Launcher是一个启动器。具体作用其实就是类似于TestNG的xml执行文件,可以灵活指定测试用例的执行,达到定制化测试的目的。
用法
具体的使用定义在JAVA的main(public static void main
)方法中,作为测试用例执行的触发点。
具体代码如下
public class Junit5Launcher {
public static void main(String[] args) {
Arrays.stream(args).forEach(arg -> {
System.out.println(arg);
});
System.out.println("可以通过args传递参数动态指定选择器和过滤器");
// 1. 构造LauncherDiscoveryRequest
// 指定测试类的查找和过滤规则
LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request()
/**
* 选择器-选择待执行的测试用例
* 取所有选择器的内容的并集执行
*/
.selectors(
selectPackage("com.Junit5")
// , selectPackage("com.Junit4")
// , selectPackage("com.Junit5.demo2")
, selectClass(Junit5Demo22Test.class)
, selectMethod("com.Junit5.demo2.Junit5Demo22Test#fun2")
)
/**
* 用例过滤器
*/
.filters(
// 只执行过滤出来的测试用例-通配符匹配
includeClassNamePatterns(".*1Test")
// 不执行过滤出来的测试用例-通配符匹配
// excludeClassNamePatterns(".*22Test")
).build();
// 2. 通过LauncherFactory.create()来获取Launcher默认实现
Launcher launcher = LauncherFactory.create();
// 注册测试用例执行监听器
TestExecutionListener listener = new SummaryGeneratingListener();
// 3. 添加TestExecutionListener来进行测试结果的监听
launcher.registerTestExecutionListeners(listener);
// 4. 启动测试
launcher.execute(request);
}
}