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
标志,我已经编辑了我的答案以包含此选项