(一)使用 TestNG 的新特性管理实际项目中的大量单元测试

发表于:2009-04-02来源:作者:点击数: 标签:testngTestNG管理单元项目
随着项目的成长, 单元测试 的数量会迅猛增长。这就带来不少问题。首先数量巨大的单元测试难于管理,运行一遍耗时巨大。其次,有时某个微小改动可能只需要运行某个测试文件中的部分单元测试就可以,这时重新运行全部 测试用例 就没有必要了。其三,大多数项目
随着项目的成长,单元测试的数量会迅猛增长。这就带来不少问题。首先数量巨大的单元测试难于管理,运行一遍耗时巨大。其次,有时某个微小改动可能只需要运行某个测试文件中的部分单元测试就可以,这时重新运行全部测试用例就没有必要了。其三,大多数项目需要用到多线程特性,为使用了多线程特性的代码写测试用例相当麻烦且容易出错。本文将利用 TestNG 提供的新特性,解决以上提到的问题。
TestNG 的示例代码

        TestNG 提供了从命令行运行测试用例的方法。下面将首先从命令行运行测试用例。假设有如下的测试用例组:

列表 1. TestNG 示例代码
    
package example1;

import org.testng.annotations.*;

public class SimpleTest {

  @Configuration(beforeTestClass = true)
  public void setUp() {
    // code that will be invoked when this test is instantiated
  }

  @Test(groups = { "HelloWorld" })
  public void helloWorldTest() {
    System.out.println("Hello World");
    throw new Error();
  }

  @Test(threadPoolSize = 10, invocationCount = 5,  timeOut = 1000, groups = { "multiple" })
  public void multiThreadTest() {
     System.out.println("MultiThread test");
  }

  @Test(groups = { "HelloNature" })
  public void helloNatureTest() {
     System.out.println("Hello Nature");
     throw new Error();
  }
}      
运行 TestNG 的 Ant 脚本

为了运行这组测试用例,构建了如下的 Ant 运行脚本:
列表 2. 运行测试用例组的 Ant 脚本 build.xml 文件
    
<project default="test">

  <path id="cp">
    <pathelement location="c:/spark/eclipse/plugins/org.testng.eclipse_4.7.0.0/lib/testng-jdk15.jar"/>
    <pathelement location="c:\"/>
  </path>
 
 

原文转自:http://www.ltesting.net