TestNG - 执行测试


测试用例使用TestNG类执行。此类是在 TestNG 框架中运行测试的主要入口点。用户可以创建自己的 TestNG 对象并以多种不同的方式调用它,例如 -

  • 在现有的 testng.xml 上。

  • 在完全由 Java 创建的合成 testng.xml 上。

  • 通过直接设置测试类。

您还可以定义要包含或排除哪些组、分配参数等。命令行参数是 -

  • -d outputdir:指定输出目录。

  • -testclass class_name:指定一个或多个类名。

  • -testjar jar_name:指定包含测试的 jar。

  • -sourcedir src1;src2: ; 分隔的源目录列表(仅在使用 javadoc 注释时使用)。

  • -目标

  • -组

  • -测试运行工厂

  • -监听者

在下面的示例中,我们将在现有的 testng.xml 中创建 TestNG 对象。

创建一个类

/work/testng/src中创建一个要测试的 java 类,例如MessageUtil.java

/*
* This class prints the given message on console.
*/

public class MessageUtil {

   private String message;

   //Constructor
   //@param message to be printed
   public MessageUtil(String message) {
      this.message = message;
   }

   // prints the message
   public String printMessage() {
      System.out.println(message);
      return message;
   }
}

创建测试用例类

  • 创建一个 java 测试类,例如SampleTest.java

  • 将测试方法 testPrintMessage() 添加到您的测试类中。

  • 将注释@Test 添加到方法testPrintMessage()。

  • 使用 TestNG 的assertEquals API 实现测试条件并检查条件。

/work/testng/src中创建一个名为SampleTest.java的 java 类文件。

import org.testng.Assert;
import org.testng.annotations.Test;

public class SampleTest {

   String message = "Hello World";
   MessageUtil messageUtil = new MessageUtil(message);

   @Test
   public void testPrintMessage() {
      Assert.assertEquals(message, messageUtil.printMessage());
   }
}

创建testng.xml

接下来,让我们在/work/testng/src中创建 testng.xml 文件,以执行测试用例。该文件以 XML 形式捕获整个测试。该文件可以轻松地在一个文件中描述所有测试套件及其参数,您可以在代码存储库中检查该文件或通过电子邮件发送给同事。它还可以轻松提取测试的子集或拆分多个运行时配置(例如,testngdatabase.xml 将仅运行运行数据库的测试)。

<?xml version = "1.0" encoding = "UTF-8"?>

<suite name = "Sample test Suite">
   <test name = "Sample test">
      <classes>
         <class name = "SampleTest" />
      </classes>
   </test>
</suite>

使用 javac 编译测试用例。

/work/testng/src$ javac MessageUtil.java SampleTest.java

现在,运行 testng.xml,它将运行 <test> 标记中定义的测试用例。

/work/testng/src$ java org.testng.TestNG testng.xml

验证输出。

Hello World

===============================================
Sample test Suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================