Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 断言处理在“中给出不同的结果”;控制台“;及;“运行套件的结果”;_Java_Selenium_Selenium Webdriver_Junit_Testng - Fatal编程技术网

Java 断言处理在“中给出不同的结果”;控制台“;及;“运行套件的结果”;

Java 断言处理在“中给出不同的结果”;控制台“;及;“运行套件的结果”;,java,selenium,selenium-webdriver,junit,testng,Java,Selenium,Selenium Webdriver,Junit,Testng,我试图在这里使用软断言来运行测试,这样在断言失败后,测试中的所有脚本都应该运行。我创建了一个侦听器类来验证结果并执行测试。但是在执行之后,这个测试应该失败,并且它被验证并显示在Eclipse的“运行套件的结果”选项卡中,而不是在“控制台”选项卡中,并且在报告测试中是通过的,带有断言错误。如果代码中有任何错误,请告诉我 请参阅随附的屏幕截图以供参考 --下面是使用try-catch进行断言处理的测试类 import org.testng.Assert; 导入org.testng.annotati

我试图在这里使用软断言来运行测试,这样在断言失败后,测试中的所有脚本都应该运行。我创建了一个侦听器类来验证结果并执行测试。但是在执行之后,这个测试应该失败,并且它被验证并显示在Eclipse的“运行套件的结果”选项卡中,而不是在“控制台”选项卡中,并且在报告测试中是通过的,带有断言错误。如果代码中有任何错误,请告诉我

请参阅随附的屏幕截图以供参考

--下面是使用try-catch进行断言处理的测试类

import org.testng.Assert;
导入org.testng.annotations.Test;
导入ErrorCollector.ErrorCollector;
公共类TestValidateTitles{
@试验
公共无效有效期(){
试一试{
系统输出打印项次(“开始”);
字符串实际_title=“Gmail.com”;
应为字符串\u title=“Yahoo.com”;
Assert.assertEquals(预期标题、实际标题);
}捕获(可丢弃的t){
System.out.println(“发生错误”);
ErrorCollector.addVerificationFailure(t);
}
系统输出打印项次(“结束”);
}

}
catch捕获由
Assert.assertEquals
抛出的
AssertionError
。这就是为什么会打印错误消息,但测试没有终止并继续成功结束。

我不确定重新发明轮子的原因,但TestNG已经实现了
SoftAssert
。作为替代方案,您可以看看例如AssertJ库,它也有
软断言

您的特定问题与错误的断言错误处理方式有关

使用原始的
SoftAssert
可以捕获调用后
中的
assertAll
结果,而不是将
try/catch
块放入测试中,然后在失败时手动分配所需的测试结果