我正在尝试用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选项,以便不停止对失败进行测试?我想至少在黄瓜报告中找到预期和实际结果的失败。
答案 0 :(得分:1)
你所说的是:我可以有多个断言,每个断言都会执行吗?
是的,你可以,但你必须为每个断言编写测试,例如使用示例表或Cucumber提供的后台设置。一般来说,您需要让您的场景只测试一件事。
答案 1 :(得分:0)
Assertion肯定会停止测试,因为你知道你的代码将变得错误你可以使用AsserFailed并尝试它,否则你可以if语句并验证该步骤而不使用JUnit断言
答案 2 :(得分:0)
这可能已经晚了,但是您可以使用TestNG或AssertJ库来声明 已经实现了软断言