测试NG失败,这不是失败



我已经添加了一个复杂的UI测试框架,通过TestNG执行到一个大型企业应用程序,我们不拥有(我们是用户)。

测试框架使用查询生成器从系统中解析适合测试的数据;有时这些数据过期了,就会引发预期的异常。这些异常意味着测试不能完成,但并没有真正失败。

我正在寻找一种方法来中止个人测试,而不是失败。每次构建大约执行6次测试(带有微小的更改),所以我不关心每个构建是否有1-2次中止,但需要沉默中止,这些中止目前被标记为失败;除了让他们通过,还有其他选择吗?这似乎是一个糟糕的选择。

还有两个选项:)这将有助于将测试标记为跳过而不是失败或通过

  1. 捕获您期望的异常,并从您的@Test方法中抛出SkipException或
  2. 在afterInvocation方法中实现IInvokedMethodListener比如

    public void afterInvocation(IInvokedMethod method, ITestResult testResult) {

    if(testResult.getThrowable().getClass().equals(YourExceptionClass.class))
         testResult.setStatus(TestResult.SKIP);
    

    }

当然。您可以选择跳过失败的测试或直接忽略它们。

你需要一个类来实现IMethodInterceptor。

由于明显的原因,我不能粘贴任何我正在使用的代码,但是看看这里的一个例子,如何使用IMethodInterceptor: https://gist.github.com/krmahadevan/5028960

您没有提到您的问题,但如果您使用Jenkins,那么您可以将参数传递给构建,然后可用于过滤您试图跳过/忽略的测试。

使用try-catch来处理测试类中可接受的异常。如果您捕获了异常并且没有任何失败的断言,则测试将通过。

相关内容

最新更新