后台操作失败时将场景测试标记为已跳过

Marking scenario test as skipped when background operation fails

我想将场景标记为已跳过,以防后台出现任何故障。我在功能文件中有以下结构:

Background:
  * call read('classpath:path/to/reusable.feature@ParticularScenario')
  ...

Scenario: That one I want to skip if background call statement fails
  Given ... 
  When ...
  Then ...

我尝试在调用语句后在后台使用 * if () karate.abort() 表达式,但它什么也没做。

我不推荐这样做,强烈建议您重新构建测试。

但这里有一个可能的解决方案。我再说一遍,我一点都不喜欢这个

Background:
* def error = false
* eval
"""
try {
  var result = karate.call('reusable.feature');
  karate.set(result);
} catch (e) {
  karate.log('background failed:', e);
  karate.set('error', true);
}
"""

Scenario:
* if (error) karate.abort()

但除此之外,抱歉,空手道不是为此而设计的。