Karate 空手道中有可能做软断言吗

Karate 空手道中有可能做软断言吗,karate,Karate,即使其中一个断言/匹配失败,是否可以继续执行测试步骤 Ex: Scenario: Testing * def detail = {"a":{"data":[{"message":["push","dash"]},{"message":["data","Test"]}]}} * match detail contains {"a":{"data":[{"message":["push","dash"]}]}} * print detail 此处匹配将失败,但执行将在该点停止。 有没有一种方法可

即使其中一个断言/匹配失败,是否可以继续执行测试步骤

Ex:

Scenario: Testing
* def detail = {"a":{"data":[{"message":["push","dash"]},{"message":["data","Test"]}]}}
* match detail contains {"a":{"data":[{"message":["push","dash"]}]}}
* print detail
此处匹配将失败,但执行将在该点停止。
有没有一种方法可以进行软断言,以便执行下一步?

在2021年编辑-引入
continueOnStepFailure
标志的PR由Joel Pramos提供,并在空手道1.0以后的版本中提供。您可以在此处找到更多详细信息:


如果使用
方案大纲
,即使其中一行失败,也会执行每一行

Scenario Outline: Testing
* def detail = { a: 1, b: 2, c: 3 }
* match detail contains <expected>

  Examples:
    | expected |
    | { a: 1 } |
    | { b: 2 } |
    | { c: 3 } | 
场景大纲:测试
*def detail={a:1,b:2,c:3}
*匹配详细信息包含
示例:
|期望|
|{a:1}|
|{b:2}|
|{c:3}|

注意到“软断言”的概念是有争议的,有些人认为这是一个坏的实践:

(a)

(b)

对于那些寻找显示2个JSON对象之间所有不匹配的方法的人,请参见以下内容:


最后,由于有些人想在JS中使用“条件”匹配逻辑,请参见以下答案:

Hi Peter,您有没有计划用空手道实现软断言?这将非常有帮助,特别是在Ui自动化方面。@Vikastange不,我不认为它是必要的。很少有人要求过这个,包括你。如果您编写JS或Java函数,有很多方法可以自己完成。当然,欢迎您在2021年提交PR:)更新-空手道1.0将支持
配置continueOnStepFailure
标志,我已经编辑了我的答案以包含此选项