java - 如果测试用例在 testNG 中失败,如何运行类
问题描述
我遇到了一个问题,我有一个包含多个测试用例的类,并且我正在使用带有 java 和 selenium 的测试 ng。如果测试用例失败,是否有可能 testNG 将再次运行整个类?不是测试。因为页面之间有优先级和导航。有没有办法运行再次失败的整个班级?我只是看到重新运行测试,它对我没用。问候
解决方案
如果我理解正确,这就是您需要的解决方案
import org.testng.IRetryAnalyzer;
import org.testng.ITestResult;
public class Retry implements IRetryAnalyzer {
private int count = 0;
private static int maxTry = 3;
public boolean retry(ITestResult iTestResult) {
if (!iTestResult.isSuccess()) {
if (count < maxTry) {
count++;
iTestResult.setStatus(ITestResult.SUCCESS);
return true;
} else {
iTestResult.setStatus(ITestResult.FAILURE);
}
} else {
iTestResult.setStatus(ITestResult.FAILURE);
}
return false;
}
}
那么你所有的测试方法应该是这样的:
@Test(retryAnalyzer=Retry.class)
你应该添加 BeforeSuite
@BeforeSuite(alwaysRun = true)
public void beforeSuite(ITestContext context) {
for (ITestNGMethod method : context.getAllTestMethods()) {
method.setRetryAnalyzerClass(Retry.class);
}
}
推荐阅读
- ios - 如何在 Swift 中使用 Alamofire 拍照并通过网络发送?
- java - 设计适用于所有租户的 camunda 通用流程
- reactjs - 如何使用从 React 中的 API 获取的数据打开 Bootstrap 模式?
- css - 如何在上按钮和下面板接触的空间去除边框以使其看起来像合并?
- ruby-on-rails - 整数模型属性在 assert_equal 调用中转换为字符串
- javascript - Jquery获取嵌套选择器的文本不是孩子
- c++ - 如何导出模板函数的输出类型?
- php - 在 Wordpress 循环中调用自定义字段值?
- angular-cli - SSL 与 Angular-cli
- php - 如何将 PHP 循环分成两部分?