junit5 入门系列教程-29-junit5 拓展实体-Junit 平台启动器API(JUnit Platform Launcher API)

本文主要是介绍junit5 入门系列教程-29-junit5 拓展实体-Junit 平台启动器API(JUnit Platform Launcher API),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 目录
  • JUnit Platform Launcher API
    • 发现测试类
    • 执行测试类
  • 系列导航

JUnit Platform Launcher API

JUnit 5最突出的目标之一是使JUnit与其编程客户端(构建工具和ide)之间的接口更加强大和稳定。
目的是将发现和执行测试的内部内容与所有必需的外部过滤和配置分离开来。

JUnit 5引入了启动器的概念,可以用来发现、过滤和执行测试。此外,第三方测试库——如Spock、Cucumber和FitNesse——可以通过提供自定义测试引擎插入JUnit平台的启动基础设施。

发射API位于junit-platform-launcher模块中。

启动API的一个示例使用者是junit-platform-console项目中的ConsoleLauncher。

发现测试类

将测试发现作为平台本身的一个专用特性引入,将(希望)释放ide并构建工具,使其摆脱过去识别测试类和测试方法所必须经历的大多数困难。

import static org.junit.platform.engine.discovery.ClassNameFilter.includeClassNamePatterns;
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectClass;
import static org.junit.platform.engine.discovery.DiscoverySelectors.selectPackage;import org.junit.platform.launcher.Launcher;
import org.junit.platform.launcher.LauncherDiscoveryRequest;
import org.junit.platform.launcher.TestExecutionListener;
import org.junit.platform.launcher.TestPlan;
import org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder;
import org.junit.platform.launcher.core.LauncherFactory;
import org.junit.platform.launcher.listeners.SummaryGeneratingListener;
LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request().selectors(selectPackage("com.example.mytests"),selectClass(MyTestClass.class)).filters(includeClassNamePatterns(".*Tests")).build();Launcher launcher = LauncherFactory.create();TestPlan testPlan = launcher.discover(request);

目前有可能在包中选择类、方法和所有类,甚至在类路径中搜索所有的测试。发现发生在所有参与的测试引擎。

最终的测试计划是对所有引擎、类和测试方法的分层(和只读)描述,它们符合LauncherDiscoveryRequest。

客户端可以遍历树,检索关于节点的细节,并获取到原始源的链接(如类、方法或文件位置)。测试计划中的每个节点都有一个惟一的ID,可以用来调用特定的测试或测试组。

执行测试类

要执行测试,客户端可以使用与发现阶段相同的LauncherDiscoveryRequest,或者创建一个新的请求。可以通过在启动器上注册一个或多个TestExecutionListener实现来实现测试进度和报告,如下面的示例所示。

LauncherDiscoveryRequest request = LauncherDiscoveryRequestBuilder.request().selectors(selectPackage("com.example.mytests"),selectClass(MyTestClass.class)).filters(includeClassNamePatterns(".*Tests")).build();Launcher launcher = LauncherFactory.create();// Register a listener of your choice
TestExecutionListener listener = new SummaryGeneratingListener();
launcher.registerTestExecutionListeners(listener);launcher.execute(request);

execute()方法没有返回值,但是可以很容易地使用侦听器在自己的对象中聚合最终结果。

例如,请参见 SummaryGeneratingListener。

系列导航

系列导航

这篇关于junit5 入门系列教程-29-junit5 拓展实体-Junit 平台启动器API(JUnit Platform Launcher API)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/259532

相关文章

Python中模块graphviz使用入门

《Python中模块graphviz使用入门》graphviz是一个用于创建和操作图形的Python库,本文主要介绍了Python中模块graphviz使用入门,具有一定的参考价值,感兴趣的可以了解一... 目录1.安装2. 基本用法2.1 输出图像格式2.2 图像style设置2.3 属性2.4 子图和聚

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例