问题标签 [junit5-extension-model]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
60 浏览

java - 捕获Junit5扩展抛出的异常,可以做到吗?

背景:我有两个扩展。一种是在任何测试开始之前创建一些所需的测试数据,另一种是保存所有失败测试的唯一标识符,以便以后可以重试。我注意到,如果第一个扩展引发异常,则第二个扩展永远不会执行,即使它实现了生命周期异常处理程序。

在对其进行了更多调查以查看两个扩展是否都已注册以及它们是否注册顺序不正确后,我得出结论,可能无法使用另一个扩展捕获一个扩展中抛出的异常,并且扩展只能捕获从测试类抛出的异常. 但真的是这样吗?我在 Junit5 用户指南中找不到任何明确的信息。

下面是 Kotlin 中的一个小代码示例,它演示了我的意思。

扩展:

测试类:

我希望我能看到handleBeforeAllMethodExecutionException至少在一次延期中被执行,但得到的只是:

我是否遗漏了某些东西,或者无法从该扩展或另一个扩展中捕获从扩展抛出的异常?

0 投票
1 回答
68 浏览

java - Junit 5 扩展 - 如何访问 testDescriptor

我正在使用@ParameterizedTest 为测试编写扩展。我的测试看起来像:

在扩展中,如何让 TestDeciptor 找出当前处于活动状态的调用?

0 投票
1 回答
44 浏览

java - JUNIT 5 自动扩展注册 | 如何在 META-INF/services 文件夹中创建扩展文件,文件夹结构是什么?

阅读 JUnit 5 文档后我很困惑

Junit 自动分机注册

具体来说,可以通过在其封闭 JAR 文件的 /META-INF/services 文件夹中名为 org.junit.jupiter.api.extension.Extension 的文件中提供其完全限定的类名来注册自定义扩展。

谁能向我解释一下我的项目中需要创建哪些文件夹,我需要在哪里保留这些文件和文件夹,以及扩展文件的扩展名(.txt、.properties 或 .java)

pom.xml

0 投票
0 回答
46 浏览

junit - JUnit5 - 并行执行第一个参数化测试,然后按顺序执行

我想实现以下场景。从传递给我的类中应该并行运行的第一个测试的参数列表开始,然后我想切换到传递给第一个测试的非常单个参数的顺序行为。给定以下代码:

没有必要使用 ArgumentsProvider 作为参数提供者。@MethodSource 或 ParameterResolver 是满足要求的其他选项。但是,目前我正在使用参数提供程序类:

执行路径应该如下:

JUnit5可以做到这一点吗?