首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在JUnit报表文件中保存DisplayName

在JUnit中,可以通过使用扩展插件或自定义监听器来保存@DisplayName注解的值到报表文件中。

一种方法是使用JUnit的扩展插件,例如JUnit VintageJUnit Jupiter。这些插件可以与其他报表生成工具(如SurefireGradle)一起使用,以生成包含@DisplayName注解的测试用例的报表文件。

另一种方法是创建一个自定义的JUnit监听器,该监听器可以在测试执行期间捕获@DisplayName注解的值,并将其保存到报表文件中。以下是一个示例的自定义监听器:

代码语言:txt
复制
import org.junit.platform.launcher.TestExecutionListener;
import org.junit.platform.launcher.TestIdentifier;
import org.junit.platform.launcher.TestPlan;

public class DisplayNameListener implements TestExecutionListener {

    @Override
    public void testPlanExecutionStarted(TestPlan testPlan) {
        // 在测试计划执行开始时进行初始化操作
    }

    @Override
    public void executionStarted(TestIdentifier testIdentifier) {
        // 在每个测试用例执行开始时进行处理
        if (testIdentifier.isTest()) {
            String displayName = testIdentifier.getDisplayName();
            // 将displayName保存到报表文件中,可以使用文件IO或其他报表生成工具
        }
    }

    @Override
    public void executionFinished(TestIdentifier testIdentifier, TestExecutionResult testExecutionResult) {
        // 在每个测试用例执行结束时进行处理
    }

    @Override
    public void testPlanExecutionFinished(TestPlan testPlan) {
        // 在测试计划执行结束时进行清理操作
    }
}

要使用自定义监听器,可以在测试类或测试套件上使用@ExtendWith注解,并指定自定义监听器的类。例如:

代码语言:txt
复制
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;

@ExtendWith(DisplayNameListener.class)
public class MyTestClass {

    @Test
    @DisplayName("My Test Case")
    public void myTestCase() {
        // 测试用例的实际代码
    }
}

这样,在执行测试时,自定义监听器将捕获@DisplayName注解的值并保存到报表文件中。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,建议您参考腾讯云的官方文档和产品介绍页面,以获取与JUnit报表文件保存相关的信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【DB笔试面试511】如何在Oracle写操作系统文件写日志?

题目部分 如何在Oracle写操作系统文件写日志? 答案部分 可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。...image.png 其它常见问题如下表所示: 问题 答案 Oracle哪个包可以获取环境变量的值? 可以通过DBMS_SYSTEM.GET_ENV来获取环境变量的当前生效值。...在CLIENT_INFO列存放程序的客户端信息;MODULE列存放主程序名,包的名称;ACTION列存放程序包的过程名。该包不仅提供了设置这些列值的过程,还提供了返回这些列值的过程。...如何在存储过程暂停指定时间? DBMS_LOCK包的SLEEP过程。例如:“DBMS_LOCK.SLEEP(5);”表示暂停5秒。 DBMS_OUTPUT提示缓冲区不够,怎么增加?...如何在Oracle写操作系统文件写日志? 可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。

28.8K30
  • Spring Boot中使用JUnit5进行单元测试

    :表示测试类或测试方法不执行,类似于JUnit4的@Ignore @Timeout :表示测试方法运行如果超过了指定时间将会返回错误 @ExtendWith :为测试类或测试方法提供扩展类引用...的@RunWith注解。...3.断言机制 断言(assertions)是测试方法的核心部分,用来对测试需要满足的条件进行验证。这些断言方法都是 org.junit.jupiter.api.Assertions 的静态方法。...5.嵌套测试 JUnit 5 可以通过 Java 的内部类和@Nested 注解实现嵌套测试,从而可以更好的把相关的测试方法组织在一起。...:CSV,YML,JSON 文件甚至方法的返回值也可以作为入参。只需要去实现ArgumentsProvider接口,任何外部文件都可以作为它的入参。

    1.4K30

    Junit5 新特性你用过多少?

    如今二十多年过去了,JUnit 经过各个版本迭代演进,已经发展到了 5.x 版本,为 JDK 8以及更高的版本上提供更好的支持 (支持 Lambda ) 和更丰富的测试形式 (重复测试,参数化测试)...可以看到左边一栏的结果里显示测试项名称就是我们在测试类和方法上使用 @DisplayName 设置的名称,这个注解就是 JUnit 5 引入,用来定义一个测试类并指定用例在测试报告的展示名称,这个注解可以使用在类上和方法上...下面看下使用 @Disbaled 之后的运行效果,在原来测试类添加如下代码: @DisplayName("我的第三个测试") @Disabled @Test void testThirdTest()...JUnit 还提供了读取外部 CSV 格式文件数据的方式作为数据源的实现,我们只要用 @CsvFileSource 指定资源文件路径即可,使用起来跟 @CsvSource 一样简单这里就不再重复演示了。...@CsvFileSource 指定的资源文件路径时要以 / 开始,寻找当前测试资源目录下文件

    2.8K20

    五年了,你还在用junit4吗?

    JUnit Jupiter是在JUnit 5编写测试和扩展的新型编程模型和[扩展模型][]的组合.Jupiter子项目提供了TestEngine,用于在平台上运行基于Jupiter的测试。...,重复测试,参数化测试等 实现了模块化,让测试执行和测试发现等不同模块解耦,减少依赖 提供对 Java 8 的支持, Lambda 表达式,Sream API等。...所有JUnit Jupiter断言都是[org.junit.jupiter.Assertions]类的静态方法。...image-20210416232702304 @CsvFileSource使用classpath的CSV文件,CSV文件的每一行都会导致参数化测试的一次调用 这种就完全把测试数据与测试方法隔离,达到更好解耦效果...@ParameterizedTest @CsvFileSource(resources = "/persons.csv") //指定csv文件位置 @DisplayName("参数化测试-csv文件

    1.6K40

    让你快速上手,从JUnit 4过渡到JUnit 5

    检查版本和Spring Boot 创建项目后,转到Eclipse的Explorer视图并打开此新创建项目的pom.xml文件。...Runwith注释是JUnit 4特定的注释,该注释提供了测试运行引擎。 带MockedBean注释的类带注释的依赖项类(Adder和Subtractor)。...我们从JUnit 5添加了新的注释DisplayName,以更加详细描述它们所做的工作,如下所示。...我们从JUnit 5添加了一个新的注释Display Name,以更加详细地描述它们的工作方式,如下所示 @DisplayName(“其中一个参数的测试添加失败为负”) package springbootJUnit4...您了解了如何在JUnit 5使用JUnit 4确保向后兼容性。您了解了需要使用新的JUnit 5导入哪些包,了解了在JUnit 5测试异常和使用显示名称的新方法。

    2.5K10

    Java单元测试之JUnit 5快速上手

    如今二十多年过去了,JUnit 经过各个版本迭代演进,已经发展到了 5.x 版本,为 JDK 8以及更高的版本上提供更好的支持 (支持 Lambda ) 和更丰富的测试形式 (重复测试,参数化测试)...可以看到左边一栏的结果里显示测试项名称就是我们在测试类和方法上使用 @DisplayName 设置的名称,这个注解就是 JUnit 5 引入,用来定义一个测试类并指定用例在测试报告的展示名称,这个注解可以使用在类上和方法上...下面看下使用 @Disbaled 之后的运行效果,在原来测试类添加如下代码: @DisplayName("我的第三个测试") @Disabled @Test void testThirdTest()...JUnit 还提供了读取外部 CSV 格式文件数据的方式作为数据源的实现,我们只要用 @CsvFileSource 指定资源文件路径即可,使用起来跟 @CsvSource 一样简单这里就不再重复演示了。...@CsvFileSource 指定的资源文件路径时要以 / 开始,寻找当前测试资源目录下文件

    1.2K40

    Java单元测试之JUnit 5快速上手

    如今二十多年过去了,JUnit 经过各个版本迭代演进,已经发展到了 5.x 版本,为 JDK 8以及更高的版本上提供更好的支持 (支持 Lambda ) 和更丰富的测试形式 (重复测试,参数化测试)...JUnit Vintage:用于在JUnit 5 兼容运行 JUnit3.x 和 JUnit4.x 的测试用例。...下面看下使用 @Disbaled 之后的运行效果,在原来测试类添加如下代码: @DisplayName("我的第三个测试") @Disabled @Test void testThirdTest()...[006y8mN6ly1g70kj1q8g5j30w60e0myu.jpg] JUnit 还提供了读取外部 CSV 格式文件数据的方式作为数据源的实现,我们只要用 @CsvFileSource 指定资源文件路径即可...@CsvFileSource 指定的资源文件路径时要以 / 开始,寻找当前测试资源目录下文件

    1.1K20

    从零玩转系列之SpringBoot3-基础特性

    ,如果在application-dev.yaml编写就是无效的也可以额外添加生效文件,而不是激活替换。...*配置(:@Value("${random.int}"))OS 环境变量Java 系统属性(System.getProperties())JNDI 属性(来自java:comp/env)ServletContext...属性占位符配置文件可以使用 ${name:default}形式取出之前配置过的值。...测试4.2.0 组件测试直接@Autowired容器的组件进行测试4.2.1 注解JUnit5的注解与JUnit4的注解有所变化https://junit.org/junit5/docs/current...,类似于JUnit4的@Ignore@Timeout :表示测试方法运行如果超过了指定时间将会返回错误@ExtendWith :为测试类或测试方法提供扩展类引用import static org.junit.jupiter.api.Assertions.fail

    49720

    JUnit5学习之八:综合进阶(终篇)

    ,本章的应用在junitpractice文件夹下,如下图红框所示: junitpractice是父子结构的工程,本篇的代码在advanced子工程,如下图: 版本设置 《JUnit5学习...,在展示单元测试执行结果时,就会显示@DisplayName指定的字符串,如下图所示: 除了用@DisplayName指定展示名称,JUnit5还提供了一种自动生成展示名称的功能:@DisplayNameGeneration...学习》系列的最后,咱们来看一个既容易理解又实用的特性:多线程并发执行(Parallel Execution) JUnit5的并发执行测试可以分为以下三种场景: 多个测试类,它们各自的测试方法同时执行;...的配置文件,如下图,在test文件夹上点击鼠标右键,在弹出的菜单选择"New"->“Directory”: 弹出的窗口如下图,双击红框位置的"resources",即可新建resources目录...: 在新增的resources目录中新建文件junit-platform.properties,内容如下,每个配置项都有详细的说明: # 并行开关true/false junit.jupiter.execution.parallel.enabled

    59020

    Java单元测试框架(二)——JUnit5

    表示在每个单元测试之前执行 @AfterEach 表示在每个单元测试之后执行 @Disabled 表示测试类或测试方法不执行,类似于JUnit4的@Ignore @Timeout 表示测试方法运行如果超过了指定时间将会返回错误...,类似于JUnit4的(timeout=XXX) JUnit 5.5.2以后 @RepeatedTest 表示方法可重复执行 @ParameterizedTest 表示方法是参数化测试,类似于JUnit4...的@RunWith(Parameterized.class) @Tag 表示单元测试类别,类似于JUnit4的@Categories @ExtendWith 为测试类或测试方法提供扩展类引用 描述装饰符的程序...类似于JUnit4的(timeout=XXX)。 7....@ParameterizedTest @CsvFileSource(resources = "data.csv") //指定csv文件位置 @DisplayName("参数化测试-

    1.1K21

    JUnit 5 单元测试教程

    JUnit5 在软件开发过程,我们通常都需要测试自己的代码运行是否正常,可能对一个函数进行简单测试,也可能是多个功能的组合测试。不管使用哪种方式,都是为了更好的测试我们的代码是否存在逻辑缺陷。...JUnit 5 是 JUnit 的升级版本,JUnit 5 使用了 Java 8 及更高版本的 Java 语言特性,函数编程,流式编码等,因此更加强大。...JUnit 5 常用断言 在上面的例子,已经用到了 assertEquals 来判断结果是否符合预期,assertEquals是类 org.junit.jupiter.api.Assertions 的一个方法...; import org.junit.jupiter.api.Test; @DisplayName("测试 Presion") class PersonTest { @DisplayName...------------------------------------------------------------ 也可以指定类进行测试:mvn -Dtest=PersonTest test 一既往

    1.1K20

    Junit 5新特性全集

    所以要想保存任何你需要的状态,你可以通过JUnit内部的一个存储库来存取,这个存取库是专门用来保存一些状态的,姑且叫做“store”吧。 好,现在我们就是用这个store。...现在我们先来另外一个问题,就是当数据量很大的时候,这时候就适合把测试数据存储到一个单独的文件,而不是代码,比如excel文件: @ParameterizedTest @CsvFileSource(...扩展模型篇 JUnit 5的扩展模型允许libraries和frameworks去添加他们自己的增强到JUnit。...需要注意的是:这一切是无状态的,如果需要保存什么,请保存JUnit的store,前面我也说过。 在创建了扩展后,接下来要做的事情就是告诉JUnit这一切。...的访问权限变了,支持禁用测试了,支持批量断言了,还可以断言异常了,还可以搞嵌套测试让你的测试更加小而集中;支持通过添加条件来决定测试的触发场景;另外Junit是无状态的,如果你要保存信息,需要保存到store

    1.8K120

    JUnit5学习之七:参数化测试(Parameterized Tests)进阶

    ,本章的应用在junitpractice文件夹下,如下图红框所示: junitpractice是父子结构的工程,本篇的代码在parameterized子工程,如下图: 自定义数据源 前文使用了很多种数据源...其实JUnit5并没有严格要求,而事实上JUnit5是可以做一些自动或手动的类型转换的; 如下代码,数据源是int型数组,但测试方法的入参却是double: @Order(16) @DisplayName...这显然不合适,此时可以考虑JUnit5提供的字段聚合功能(Argument Aggregation),也就是将CSV每条记录的所有字段都放入一个ArgumentsAccessor类型的对象,测试方法只要声明...ArgumentsAccessor类型作为入参,就能在方法内部取得CSV记录的所有字段,效果如下图,可见CSV字段实际上是保存在ArgumentsAccessor实例内部的一个Object数组:...如下图红框所示,测试方法应该只有单元测试的逻辑,而创建Person实例的代码放在这里显然并不合适: 针对上面的问题,JUnit5也给出了方案:通过注解的方式,指定一个从ArgumentsAccessor

    97930
    领券