junit5 入门系列教程-20-junit5 拓展实体条件测试

目录

条件测试

ExecutionCondition 定义用于编程、条件测试执行的扩展API。

执行条件对每个容器(例如,测试类)进行评估,以确定它包含的所有测试是否应该基于提供的ExtensionContext执行。
类似地,对每个测试执行条件进行评估,以确定是否应该基于提供的ExtensionContext执行给定的测试方法。

当注册了多个执行条件扩展时,一旦其中一个条件返回为禁用状态,就会禁用容器或测试。因此,不能保证对条件进行评估,因为另一个扩展可能已经导致容器或测试被禁用。换句话说,评估工作类似于短路布尔或运算符。

具体示例请参见 DisabledCondition和@Disabled的源代码。

去活化条件(Deactivating Conditions)

有时,运行测试套件而没有激活某些条件是有用的。例如,您可能希望运行测试,即使这些测试是用@禁用的,以便查看它们是否仍然被破坏。
为此,只需为 junit.jupiter.conditions.deactivate 配置参数提供一个模式,以指定应该停用哪些条件(例如:对于当前的测试运行,不进行计算。该模式可以作为一个JVM系统属性提供,在LauncherDiscoveryRequest中作为配置参数传递给启动器,或者通过JUnit平台配置文件(参见配置参数获取详细信息)。

例如,要停用JUnit的 @Disabled 条件,可以使用以下系统属性启动JVM。

-Djunit.jupiter.conditions.deactivate=org.junit.*DisabledCondition

正则匹配语法

如果 junit.jupiter.conditions.deactivate 模式仅由星号(*)组成,则所有条件都将被禁用。

否则,模式将用于匹配每个已注册条件的全限定类名(FQCN)。

模式中的任何点(.)将与FQCN中的点(.)或美元符号($)匹配。
任何星号(*)都将与FQCN中的一个或多个字符匹配。模式中的所有其他字符将与FQCN进行一对一匹配。

示例

  • *: 所有情况下禁用

  • org.junit.*: 禁用 org.junit 基本包和它的任何子包。

  • *.MyCondition: 使简单类名正好为MyCondition的所有条件失效。

  • *System*: 使简单类名包含System的所有条件失效

  • org.example.MyCondition: 停用FQCN为org.example.MyCondition的条件。

系列导航

系列导航

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值