JUnit 5.9 解决了各种缺陷并引入了一些新的特性,比如执行测试后保留临时文件的能力。新的注解提供了在 GraalVM 原生镜像中启动或禁用特定测试的能力。现在,XML 报告会存储为开放测试报告(Open Testing Reporting)格式。
JUnit 5.4引入了@TempDir注解,允许在单元测试中自动创建和删除文件。在下面的例子中展示了如何创建 JavaVersions.txt 文件,它将会在测试结束后自动删除:
JUnit 现在允许通过CleanupMode枚举常量为@TempDir
注解设置清理策略,包括:ALWAYS
、DEFAULT
、NEVER
和ON_SUCCES
。其中,CleanupMode.ALWAYS
是默认的清理策略,在声明注解的时候,可以将其变更为CleanupMode.NEVER
:
在运行测试之后,临时文件会依然存在于一个含有随机数字的目录中,比如:
在该版本之后,XML 报告将会以开放测试报告(Open Testing Reporting)的格式进行存储,该格式与任何具体的测试框架或编程语言无关。新的测试结果格式能够让工具开发人员更易于解析测试报告,不必针对每种测试框架特有的测试结果格式编写解析器。
新引入的IterationSelector类允许用户在 IDE 中为参数化的测试选择特定的迭代。在目前流行的 IDE 中,如 IntelliJ,会显示一个绿色的箭头,允许使用所有的参数重新运行整个测试:
现在,有一个open状态的问题已经提交到了 YouTrack(JetBrains 的问题跟踪器)中,提议添加对IterationSelector
类的支持。它的建议方式是为参数化测试的每个值添加一个箭头,这样的话,就能基于某个参数值运行测试,而不必针对所有的参数运行测试。
ConsoleLauncher是一个用于运行 JUnit 平台的命令行 Java 应用。我们现在可以使用--single-color
参数改变输出风格,它只会显示没有颜色的文本属性,我们还可以使用--color-palette=FILE
选择自定义的 ANSI 风格的输出。新引入的--list-engines
参数会显示出所有可用的测试引擎。
当没有找到测试时,@Suite的新failIfNoTests
属性会使整个测试套件(suite)失败。
在测试实例创建之前应调用的Extensions现在可以使用TestInstancePreConstructCallback接口定义,它对应于现有的TestInstancePreDestroyCallback接口。
现在,我们能够使用@EnabledOnOs和@DisabledOnOs注解基于操作系统启用或禁用测试,目前包含了对 FreeBSD 和 OpenBSD 的支持:
@MethodSource注解使用的工厂方法现在可以使用ParameterResolver扩展解析得到的参数:
JUnit 5.9.1 引入了@EnabledInNativeImage和@DisabledInNativeImage注解,以便在GraalVM原生镜像中运行时启用或禁用标注的测试。
JUnit 5 文档提供了关于新功能、缺陷修复和废弃功能的完整概述。
原文链接:
JUnit 5.9 Supports GraalVM Native Image
相关阅读:
评论