所以,我正在使用Selenium Webdriver-Java。
我有四个文件
设置.java我设置硒服务器和火狐浏览器并停止它们的地方。
登录.java:用于测试登录页面中某些CSS属性的类
注销.java:用于测试的类 注销
主.java我称之为设置.java,登录.java和注销的地方.java
我在登录和注销类中使用软断言方法,例如
SoftAssert s_assert = new SoftAssert();
s_assert.assertEquals(fontSize, "13px", "BANNER Font size Test");
我在文件中有很多软断言,我做了一个
s_assert.assertAll();
在 TestNG 报告中将其标记为失败
- 问题是,如果 Login 类中的任何断言失败,则不会执行 Logout 类。有没有办法s_assert.assertAll();在主类中,我调用@test下的所有函数?
提前感谢!
沙里奥
最好的方法是创建字符串变量来在类中携带消息。
例如 String errorMessages = null;
使用"尝试捕获块"捕获断言错误,并将错误消息存储在变量中。
try{
SoftAssert s_assert = new SoftAssert();
s_assert.assertEquals(fontSize, "13px", "BANNER Font size Test");
}catch(AssertionError ae){
if(errorMessages == null) errorMessgaes = "";
errorMessages += ae.getMessage();
}
//Code to execute logout
注销后将其丢弃。
throw new Exception(yourStringVariable);
通过这种方式,您可以通知TestNG有关错误的信息,它会将您的测试标记为失败。
希望对您有所帮助。