转自【http://juvenshun.spaces.live.com/blog/cns!CF7D1BC903C111E1!313.entry?fl=cat
】
- 使用Annotation来标识测试。
传统xUnit用命名规范来标识测试,难免有时会给人带来束缚。使用Annotation,束缚消失了,而且功能更强大了,一句@BeforeClass
就可以让一个方法在整个类之前运行,JUnit3可做不到。此外,编译器会帮我们检查Annotation的,所以,不容易犯低级错误。
- 支持测试分组。
一个测试类的方法分属不同的组,给我们带来的好处是,我们可以选择性的运行测试方法,更灵活的管理测试之间的关系。单元测试和继承测试可以分属不同的组,随时运行单元测试,晚上运行继承测试。像这样:@Test
(
groups
=
{
"integration"
})
- 支持测试依赖
传
统的xUnit框架提倡测试孤立,也就是说一个测试和另外一个测试必须是完全独立的,这是一条很好的实践。但是考虑这样一种情况:有CRUD四个方法访问
数据库,如果数据库连接坏了,四个方法全会报错,可实际上,CRUD逻辑可没有问题。使用TestNG,我们可以先写个testDB方法,然后让CRUD
依赖它,像这样:@Test
(
dependsOnMethods
=
{
"testDB"
})。如果testDB红了,CRUD就不会再运行。怎么样?是不是更合理了?
- 使用testng.xml管理测试运行
不再需要一层一层的写TestSuit了,只要集中的在testng.xml里配置,你想运行什么组,什么包,什么类,甚至什么方法。可以有多个testng.xml,这样就可以定义多组规则了。而且,这个xml的dtd
可是相当的简单,不到150行,其中大部分是注释。
- 数据驱动测试
你是否曾经在一个测试方法里面写类似的代码?
assertEquals(4, add(1,3));
assertEquals(4, add(2,2));
assertEquals(4, add(4,0));
它们是数据驱动的,测试逻辑没有任何区别。TestNG通过@DataProvider支持了数据驱动测试,测试代码可以变成这样:assertEquals(result, add(x,y)); 其中,result, x 和 y是通过方法参数传进来的。
- 多线程测试
使用JUnit,这是不可能是实现的,TestNG给了我们惊喜,使用这样的配置:<suite
name
=
"My suite"
parallel
=
"methods"
thread-count
=
"5"
>,就可以让每个方法在不通的线程里运行了。
- 内容详实的测试报告
可以通过'verbose
'属性来控制consol的舒服详细程度,TestNG还能帮你生成丰富的HTML测试报告,老板看到这样的东西肯定开心啦。
- 与主流工具的成熟集成
我在eclipse,在Maven中都跑过了TestNG,感觉还是相当的舒畅的,TestNG和ant和spring等集成也没什么问题,大家都很支持它。
TestNG非常不错的官方文档:
http://testng.org/doc/documentation-main.html
不停留在介绍技术表面的书:
Next Generation Java Testing
InfoQ上对TestNG的视频介绍:
Designing for Testability
分享到:
相关推荐
TestNG是Java领域中广泛使用的自动化测试框架,由Cedric Beust创建,它是JUnit的一个增强版,提供了更多功能,如并发测试、参数化测试、依赖性管理等。而TestNG XSLT扩展则进一步增强了其报告功能,允许用户通过...
TestNG框架使用详解 TestNG是一款强大的测试框架,它提供了比JUnit更丰富的功能,尤其在并行测试、分组测试、依赖测试等方面表现突出。这篇博文将深入探讨如何使用TestNG进行单元测试和集成测试。 1. **TestNG基本...
使用 TestNG 测试 Java 工程操作手册分享 本操作手册分享了使用 TestNG 测试 Java 工程的步骤,包括环境准备、添加工程、编写测试类、运行测试等内容。 环境准备: 在使用 TestNG 测试 Java 工程之前,需要准备好...
TestNG是一种广泛使用的Java测试框架,它为开发者和测试工程师提供了功能强大且灵活的测试解决方案。这个"TestNG离线安装文件site"包含了在没有网络连接的情况下为Eclipse集成TestNG环境所需的所有组件,特别适合...
讲解如何使用Selenium 和 TestNG 进行编程式测试
TestNG(Testing New Generation)是一个开源的自动...通过利用注解来定义测试和分组测试,使用TestNG的运行测试功能,以及生成详细的测试报告,TestNG帮助测试团队提高了测试的效率和质量,进而提升了软件产品的质量。
- **testng-6.8.8.jar**:这是TestNG的JAR文件,包含了TestNG库的所有类和资源,可以被Java项目引用以使用TestNG进行测试。 - **src**:通常包含Java源代码文件,可能是使用TestNG编写的测试类或相关项目的源代码...
TestNG是Java编程语言中的一款强大的自动化测试框架,与JUnit和Selenium等工具配合使用,为软件测试提供了全面且灵活的解决方案。TestNG由Cédric Beust创建,旨在提高测试效率并支持更复杂的测试场景,如并发测试、...
### TestNG官方文档中文版知识点概述 #### 一、TestNG简介与特点 **TestNG**(Next Generation...通过上述概念和注解的支持,TestNG能够帮助开发者构建出强大且灵活的自动化测试体系,极大地提高了测试的效率和质量。
在Eclipse中使用TestNG进行测试,你需要创建一个新的TestNG类,通常继承自`org.testng.annotations.Test`注解的类。以下是一个简单的例子: ```java import org.testng.Assert; import org.testng.annotations.Test...
通常,它会指导用户如何配置TestNG以使用定制的模板,可能包括XML配置文件的设置、类路径的指定等。详细阅读这份说明是理解并正确应用模板的关键。 3. **testNGpara.xml**:这可能是TestNG的测试配置文件,用于定义...
TestNG使用注解来定义测试类和方法,如`@Test`用于标记测试方法,`@BeforeMethod`和`@AfterMethod`分别在每个测试方法前和后执行,简化了测试代码的编写。 2. **测试套件(Test Suites)**: TestNG允许创建测试...
让我们调用使用testng.xml文件。创建一个XML文件名称testng.xml C:\ > TestNG_WORKSPACE 执行测试用例(s) <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > </suite> 第7步:检查结果 ...
2. **测试套件(Test Suites)**:TestNG允许用户创建复杂的测试结构,如测试套件,可以包含多个测试类和配置文件,便于组织和管理大规模的测试。 3. **注解(Annotations)**:TestNG提供了丰富的注解,如@Test、@...
Eclipse是一款广泛应用的Java集成开发环境,而TestNG Eclipse插件则让开发者在Eclipse中无缝地使用TestNG进行测试编写和执行。 本离线资源包包含两个版本的TestNG:6.14.0和6.9.10。这两个版本各有其特点和适用场景...
1. **并行测试**:TestNG支持在同一测试类中并行执行测试方法,甚至可以跨测试类并行运行,这极大地提高了测试效率,尤其是在进行大量自动化测试时。 2. **测试套件(Suite)**:TestNG允许定义测试套件XML文件,...
7. **使用TestNG**: 安装完成后,你可以在Eclipse中创建新的TestNG测试类,使用@Test注解编写测试方法,利用@BeforeTest, @AfterTest, @BeforeClass, @AfterClass, @BeforeMethod, 和 @AfterMethod等注解来定义测试...
描述中提到的“testng架包使用在java程序中”,意味着你需要将TestNG整合到你的Java项目中。以下是一些关键知识点: 1. **测试类和方法**:在TestNG中,测试类和方法使用特定的注解来标识。例如,`@Test`注解标记...
TestNG的报告生成也是其一大亮点。它提供了详细且美观的HTML测试报告,不仅包含测试结果,还有测试用例的执行时间和异常信息,这对于分析测试结果和问题定位十分方便。 另一个值得一提的是,TestNG支持参数化测试,...
使用注解是TestNG的一个重要特性,它们可以声明测试行为、前置条件、后置条件等。例如,`@BeforeSuite`注解的方法会在整个测试套件开始前运行,`@AfterMethod`则在每个测试方法结束后运行。这些注解极大地简化了测试...