TestNG学习-运行相关设置

简介: TestNG学习-运行相关设置

1. 重新运行失败用例    

   每当suite中的测试失败时,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包含所有必需的依赖方法,因此可以确保运行失败的方法时不会出现任何SKIP失败。

   有时,可能希望TestNG在测试失败时自动重试。在这种情况下,可以使用重试分析器(retry analyzer)。将重试分析器绑定到测试时,TestNG会自动调用重试分析器,以确定TestNG是否可以再次重试测试用例,来尝试查看刚刚失败的测试是否通过。

   使用重试分析器的步骤:

  1. 构建接口org.testng.IRetryAnalyzer的实现
  2. 将实现绑定到@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;
  }
}
import org.testng.Assert;
import org.testng.annotations.Test;
public class TestclassSample {
  @Test(retryAnalyzer = MyRetry.class)
  public void test2() {
    Assert.fail();
  }
}

2. Junit测试框架的支持

   TestNG可以运行JUnit 3和JUnit 4测试。您需要做的就是将JUnit jar文件放在类路径上,在testng.classNames属性中指定您的JUnit测试类,并将testng.junit属性设置为true:

<test name="Test1" junit="true">
  <classes>
    <!-- ... -->

在这种情况下,TestNG根据在类路径上找到的JUnit版本执行类似于JUnit的方法:

  • JUnit 3
  • 类中所有以test *开头的方法都将运行。
  • 如果您的测试类上有一个方法setUp(),它将在每个测试方法之前调用。
  • 如果您的测试类上有一个方法tearDown(),它将在每个测试方法之后被调用
  • 如果您的测试类包含方法suite(),则将调用此方法返回的所有测试用例。
  • JUnit4
  • TestNG将使用org.junit.runner.JUnitCore运行程序运行测试用例。


3. 在程序中调用testng

可以很容易地从自己的程序中调用TestNG:

TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
testng.setTestClasses(new Class[] { Run2.class });
testng.addListener(tla);
testng.run();

   该示例创建一个TestNG对象并运行测试类Run2。它还添加了一个TestListener。可以使用适配器类org.testng.TestListenerAdapter或自己实现org.testng.ITestListener。该接口包含各种回调方法,可以跟踪测试的开始时间,成功时间,失败时间等。

   同样,您可以在testng.xml文件上调用TestNG,也可以自己创建一个虚拟的testng.xml文件。可以使用包org.testng.xml中的类:XmlClass,XmlTest等。这些类中的每一个都对应于它们的XML标记。

   假设想生成如下虚拟文件:

<suite name="TmpSuite" >
  <test name="TmpTest" >
    <classes>
      <class name="test.failures.Child"  />
    <classes>
    </test>
</suite>

 可以使用如下代码:

XmlSuite suite = new XmlSuite();
suite.setName("TmpSuite");
XmlTest test = new XmlTest(suite);
test.setName("TmpTest");
List<XmlClass> classes = new ArrayList<XmlClass>();
classes.add(new XmlClass("test.failures.Child"));
test.setXmlClasses(classes) ;

  然后可以将此XmlSuite传递给TestNG:

List<XmlSuite> suites = new ArrayList<XmlSuite>();
suites.add(suite);
TestNG tng = new TestNG();
tng.setXmlSuites(suites);
tng.run();

 欢迎关注交流~

相关文章
|
Java 测试技术 Maven
TestNG学习-运行一个测试实例
TestNG学习-运行一个测试实例
TestNG学习-运行一个测试实例
|
XML Java 关系型数据库
TestNG学习-参数的使用
TestNG学习-参数的使用
TestNG学习-参数的使用
|
XML 安全 测试技术
TestNG学习-监听方法的使用
TestNG学习-监听方法的使用
|
Java Shell
Java:通过Shell脚本控制SpringBoot项目的重新部署
Java:通过Shell脚本控制SpringBoot项目的重新部署
133 0
|
测试技术 Android开发
eclipse 直接右键工程new 看不到JUnit的情况以及JUnit的作用、使用举例和JUnit的注意事项
eclipse 直接右键工程new 看不到JUnit的情况以及JUnit的作用、使用举例和JUnit的注意事项
279 0
eclipse 直接右键工程new 看不到JUnit的情况以及JUnit的作用、使用举例和JUnit的注意事项
|
测试技术
IDEA自动在test包下生成junit单元测试文件
IDEA自动在test包下生成junit单元测试文件
179 0
IDEA自动在test包下生成junit单元测试文件
|
测试技术 Android开发 数据格式
|
测试技术 Android开发
|
Java 测试技术