如何将Cucumber JUnit步骤标记为失败但继续

时间:2018-01-31 13:04:56

标签: java selenium junit cucumber

我正在尝试用Cucumber在我的selenium项目中实现一种软断言。

基本上我正在使用JUnit Eclipse插件运行脚本作为JUnit测试,我想知道是否有任何方法可以在一个步骤上执行多个断言,如果任何断言失败,我想将步骤标记为失败,但继续执行方案中的其他步骤/断言,而不会中断执行。

通过标记失败的步骤,我的意思是标记失败并添加到JUnit中的FAILED计数器,对于每个失败的断言,无论它发生在何处。

我注意到如果我使用

捕获断言错误
try { 
    AssertTrue(someCondition.isTrue()); 
} catch (AssertionError ae) { 
    log.info(some message); 
}

该步骤将在JUnit插件中标记为PASSED,失败的计数器保持为0。

什么触发了计数器,如何在不抛出AssertionError的情况下手动标记JUnit失败?

或者,是否有可以添加到Runner的Cucumber选项,以便不停止对失败进行测试?我想至少在黄瓜报告中找到预期和实际结果的失败。

3 个答案:

答案 0 :(得分:1)

你所说的是:我可以有多个断言,每个断言都会执行吗?

是的,你可以,但你必须为每个断言编写测试,例如使用示例表或Cucumber提供的后台设置。一般来说,您需要让您的场景只测试一件事。

答案 1 :(得分:0)

Assertion肯定会停止测试,因为你知道你的代码将变得错误你可以使用AsserFailed并尝试它,否则你可以if语句并验证该步骤而不使用JUnit断言

答案 2 :(得分:0)

这可能已经晚了,但是您可以使用TestNG或AssertJ库来声明 已经实现了软断言