Testng测试框架(7)--测试运行

忽略测试

TestNG可以让你忽略类、特殊包、包及其子中的所有@Test方法。

当在测试方法级别使用@Ignore 注解,在功能上与@Test(enabled=false).一样。

以下例子将忽略类中所有tests。

import org.testng.annotations.Ignore;
import org.testng.annotations.Test;
@Ignore
public class IgnoreTest {
    @Test
    public void testMethod1() {
    }

    @Test
    public void testMethod2() {
    }
}

在这里插入图片描述
@Ignore注解比@Test方法注解有更高的优先级。

To ignore all tests in a particular package, you just need to create package-info.java and add the @Ignore annotation to it. Here’s a sample :

@Ignore
package com.testng.master;

import org.testng.annotations.Ignore;

This causes all the @Test methods to be ignored in the package com.testng.master and all of its sub-packages.

重运行失败用例

每次测试套件中的测试失败时,TestNG都会在输出目录中创建一个名为testng-failed.xml的文件。这个XML文件包含重新运行仅这些失败方法所需的信息,使您能够迅速重现失败,而无需运行整个测试。因此,一个典型的会话看起来会像这样:

java -classpath testng.jar;%CLASSPATH% org.testng.TestNG -d test-outputs testng.xml
java -classpath testng.jar;%CLASSPATH% org.testng.TestNG -d test-outputs test-outputs\testng-failed.xml

请注意,testng-failed.xml文件将包含所有必要的依赖方法,以确保您能够运行失败的方法而不会遇到任何跳过失败的情况。

有时,您可能希望TestNG在测试失败时自动重试。在这些情况下,您可以使用重试分析器。

当您将重试分析器绑定到测试时,TestNG会自动调用重试分析器来确定是否可以再次重试测试用例,以尝试查看刚刚失败的测试现在是否通过。以下是您如何使用重试分析器:

构建org.testng.IRetryAnalyzer接口的实现

将这个实现绑定到@Test注解上,例如@Test(retryAnalyzer = LocalRetry.class)

下面是一个重试分析器的示例实现,它最多会重试测试三次。

import org.testng.IRetryAnalyzer;
import org.testng.ITestResult;

public class MyRetry implements IRetryAnalyzer {

  private int retryCount = 0;
  private static final int maxRetryCount = 3;

  @Override
  public boolean retry(ITestResult result) {
    if (retryCount < maxRetryCount) {
      retryCount++;
      return true;
    }
    return false;
  }
}

在这里插入图片描述
可以看到,一共运行了四次,第一个失败被忽略,又执行了三次,最后一次失败报错。

Dry Run

“Dry Run” 是一个在计算机科学和软件测试中常用的术语,通常指的是模拟执行某个过程或测试,但不真正执行它。在软件测试的上下文中,Dry Run 是一种在实际运行测试之前预览或模拟测试执行的方法。它允许测试人员或开发人员检查测试脚本和配置是否正确,而无需实际执行测试并可能产生副作用或消耗资源。

对于TestNG测试,Dry Run 可能意味着执行以下步骤:

  1. 检查测试配置:确认测试套件和测试用例的配置是否正确,包括依赖项、参数和任何需要的资源。

  2. 预览测试执行:模拟测试执行流程,查看哪些测试方法将被调用,以及它们的执行顺序。

  3. 验证测试数据:确保测试所需的数据(如输入数据、测试数据、环境配置等)是可用的,并且是正确的。

  4. 检查测试逻辑:确认测试逻辑是否按照预期编写,包括断言和验证点。

  5. 识别潜在问题:通过Dry Run,可能能够提前发现测试脚本中的潜在问题,如缺失的依赖项、错误的配置或逻辑错误。

  6. 避免不必要的资源消耗:由于Dry Run 不真正执行测试,因此它避免了因执行测试而可能产生的资源消耗(如时间、内存、网络带宽等)。

在TestNG中,虽然没有一个内置的“Dry Run”功能,但你可以通过编写自定义的脚本或使用集成开发环境(IDE)的功能来模拟这个过程。例如,你可以编写一个脚本来读取测试套件和测试用例,并输出它们的信息,而不是真正执行它们。此外,一些IDE(如IntelliJ IDEA、Eclipse等)提供了测试运行配置,允许你查看将要运行的测试,而不真正执行它们。

可以启用TestNG的dry run模式,通过给JVM传参 -Dtestng.mode.dryrun=true

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值