java - 是否可以在 Junit5 中禁用参数化测试基础参数
问题描述
我有一个场景,我试图禁用参数化测试,但我不想禁用所有它们。考虑下面的模拟场景
@CsvSource({
"1,1",
"2,2",
"3,not3"
})
@ExtendWith(DisableParameterized.class)
@ParameterizedTest( name = "Test for {0} is equal to {1}")
void equality(String expected, String actual) {
assertEquals(expected, actual, "Not as expected");
}
是否可以编写一个DisableParameterized implements ExecutionCondition
可以禁用基于某些元数据的参数化测试之一。
我可以在
public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext extensionContext)
是否displayName
有其他方法可以通用地提供某种元数据来禁用参数化测试?
如果我将它们标记为@Disabled,它会禁用所有 ParameterizedTests,以至于它甚至不会调用单个测试并在方法级别停止。
编辑:正如下面 Sam 所提到的,在提到的问题得到修复/实施并在更新版本中发布之前,不可能使用标准 API 来做到这一点。然而,我能够使用反射编写代码来实现我想要的,所以我在下面添加了一个答案
解决方案
不,从 JUnit Jupiter 5.6(在撰写本文时等待 GA 发布)开始,无法访问用于调用参数化测试的参数。
目前,推断该类型信息的唯一方法确实是通过显示名称。
以下未解决的 JUnit 5 问题与此主题相关。
推荐阅读
- node.js - 试图在对象中打印数组,但不工作(reactjs)
- java - Locale.setDefault 影响 Locale.getDefault.getCountry
- python - 的行为
ttk.Combobox 事件 - heroku - 安装后如何运行 PeerJS 服务器 Heroku
- scala - Spark scala 找不到文件类型
- java - Apache CachingHttpClientBuilder 的默认缓存行为是什么?
- excel - 在excel中求和产品动态范围
- c# - 希望将所有对象列表组合成单个字符串
- reactjs - 嵌套地图中的反应功能组件多次重新渲染
- google-apps-script - Google 表格查询功能 - 如何引用活动表格/标签名称?