java - 如果 50% 的测试方法在 testng 中失败,我该如何停止自动化?
问题描述
如果编写的 @Test 方法失败超过 50%,我想停止执行。
例如:
public void LoginTest(){
@Test
public void ValidUserName(){
}
@Test
public void InValidUserName(){
}
@Test
public void ValidUserID(){
}
@Test
public void ValidUserIDInvalidPassword(){
}
@Test
public void EmptyUserNamePassword(){
}
}
If ValidUserName()
, InValidUserName()
and ValidUserID()
get failed 这意味着 LoginTest 50% @Test 方法失败了,现在,我不想执行ValidUserIDInvalidPassword()
和EmptyUserNamePassword()
如果有人能在这方面帮助我,那就太好了。
解决方案
实现接口并在达到阈值时IInvokedMethodListener
抛出一个。SkipException
在下面的代码中使用了 30%。
public class MyMethodInvoke implements IInvokedMethodListener {
private int failure = 0;
@Override
public void beforeInvocation(IInvokedMethod method, ITestResult testResult) {
int testCount = testResult.getTestContext().getAllTestMethods().length;
if((failure * 1.0) / testCount > 0.3)
throw new SkipException("Crossed the failure rate");
}
@Override
public void afterInvocation(IInvokedMethod method, ITestResult testResult) {
if(testResult.getStatus()==ITestResult.FAILURE)
failure++;
}
}
@Listeners({package.MyMethodInvoke.class})
public class Test {
它适用于单个类中的测试,不知道它如何处理套件中多个类中的测试。甚至对于并行执行。
推荐阅读
- r - 替换的循环长度为零
- javascript - 如何查看网站是客户端呈现还是服务器端呈现?
- java - 在 Kotlin 中,有没有办法通过函数调用向枚举中添加一个值?
- r - 在r中找到水道周围两点之间的最短距离
- atom-editor - Atom 编辑器:失去了在 Atom 编辑器中进行多行编辑的能力
- next.js - Apollo GraphQL 加载查询
- javascript - 可观察到的角度订阅返回未定义
- html - 如何在angular9中动态添加类名
- amazon-web-services - 如何使用 POST 函数将 DynamoDB、Lambda 函数或网关 API 链接到外部 API?
- reactjs - 具有多路径的 React Router 的 Laravel 路由设置