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

Java 如何将JUnit步骤标记为失败但继续,java,selenium,junit,cucumber,Java,Selenium,Junit,Cucumber,我正试图在我的selenium项目中用Cucumber实现一种软断言 基本上,我使用JUnit Eclipse插件将脚本作为JUnit测试运行,我想知道是否有任何方法可以对一个步骤执行多个断言,如果任何断言失败,我想将该步骤标记为失败,但是,在不中断执行的情况下继续场景中的其他步骤/断言 通过标记失败的步骤,我的意思是标记失败并在JUnit中为每个失败的断言添加失败计数器,而不管它发生在哪里 我注意到,如果我使用 try { AssertTrue(someCondition.isTru

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

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

通过标记失败的步骤,我的意思是标记失败并在JUnit中为每个失败的断言添加失败计数器,而不管它发生在哪里

我注意到,如果我使用

try { 
    AssertTrue(someCondition.isTrue()); 
} catch (AssertionError ae) { 
    log.info(some message); 
}
该步骤将在JUnit插件中标记为已通过,失败的计数器保持为0

什么触发计数器?如何在不抛出断言错误的情况下手动标记JUnit失败


或者,是否有一个Cumber选项可以添加到Runner中,以便不停止失败测试?我希望至少在cucumber报告中包含预期和实际结果的失败。

断言肯定会停止测试,如果您知道您的代码将失败,您可以使用AsserFailed并尝试它,否则,您可以在不使用JUnit断言的情况下使用if语句并验证步骤。您要说的是:我可以有多个断言,每个断言都将执行吗


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

这可能太晚了,但您可以使用TestNG或AssertJ库进行断言
已经实现了软断言

是的,我知道可能会失败,但我需要为Cucumber报告提供JUnit。可能重复我希望避免为每个断言编写测试,但感谢您的建议。我真正想要的是告诉JUnit插件标记一个失败,这样我就可以在同一个测试中标记多个失败。这就是问题所在,JUnit(和其他测试框架)的构建将在失败后停止,因为它会对所有其他断言造成不确定性,考虑到应用程序的行为不符合预期。