TestNG
✍ dations ◷ 2025-06-08 22:57:31 #Java平台,使用Apache许可证的软件
TestNG是一个Java语言的测试框架,由Cédric Beust受到JUnit和NUnit(英语:NUnit)的启发而创建。TestNG的设计目标是,覆盖更广泛的测试类别范围:单元测试、功能测试、端到端测试、集成测试等,并且功能更强大、更易于使用。
TestNG的主要功能包括:
TestNG中的数据提供者是测试类中的一个方法,该类为依赖测试方法提供了一个不同实际值的数组。
例如:
/** * 本方法可为任何测试方法提供数据,只要声明测试方法的数据提供者名为 * “provider1”即可。 */ @DataProvider( name = "provider1" ) public Object createData1() { Object objects = new Object; objects = new Object { "Cedric", 36 }; objects = new Object { "Anne", 37 }; return objects; } /** * 本测试方法声明其数据应由名为“provider1”的数据提供者提供。 */ @Test( dataProvider = "provider1" ) public void verifyData1( String s, Integer i ) { System.out.println( s + ' ' + i ); } /** * 本数据提供者返回一个参数数组的迭代器。 */ @DataProvider( name = "provider2" ) public Iterator<Object> createData() { return new MyIterator( ... ); } /** * 本数据提供者带有一个 java.lang.reflect.Method 类型的参数。如果多个测试方 * 法使用同一个提供者,而且你又希望它能根据不同的测试方法返回不同的值,本方 * 法就非常有用。 */ @DataProvider( name = "provider3" ) public Object createData( Method m ) { System.out.println( m.getName() ); return new Object { new Object { "Cedric" } }; }
数据提供者的返回值类型可以是以下两种类型之一:
TestNG既有现成软件,又可以通过IDE插件来调用。目前三大主流Java IDE——Eclipse、IntelliJ IDEA和NetBeans——都有针对TestNG的插件。它也可以配置为Apache Ant的定制任务,并且支持Apache Maven构建系统。Hudson的持续集成服务器已经内建了对TestNG的支持,并能进行跟踪,及随时间推移对测试结果进行可视化。多数Java代码覆盖率工具,如Cobertura(英语:Cobertura),都可以与TestNG无缝衔接。
TestNG可以生成HTML和XML格式的测试报告。Ant的JUnitReport任务可以转换XML输出,生成与使用JUnit时所获得的类似的报告。从4.6版开始,TestNG还提供了一个报告API。通过该API可以使用第三方的报告生成器,如ReportNG、PDFngreport和TestNG-XSLT。
TestNG和JUnit是两个相似且相互竞争的Java工具,它们之间的差异及各自优势已经讨论了多年。两大阵营都有强大的基础和支持者。Stack Overflow的讨论可以反映这一争议。
在JUnit 4中,@BeforeClass和@AfterClass方法必须被声明为静态的。而TestNG没有这个限制。
TestNG为包、测试和组提供了四对额外的装/卸注解,即@BeforeSuite和@AfterSuite,@BeforeTest和@AfterTest,@BeforeGroup和@AfterGroup,@BeforeMethod和@AfterMethod。
这两个工具都实现了这个功能,但实现方式截然不同。
TestNG有两种方式来为测试方法提供不同的参数值:设置testng.xml,及定义@DataProvider的方法。
在JUnit 4中,使用@RunWith和@Parameters一起来实现参数化测试,而@Parameters方法必须返回List,它携带所有实际的值,这些值将作为参数被传递给专门的类构造器。
JUnit常常被主流IDE默认支持,这有助于其更广泛的普及。而TestNG的目标则更广泛,不仅包括单元测试,还支持集成测试和验收测试等。哪一个更好或更适合,取决于使用情况和要求。
相关
- 阳痿勃起功能障碍(Erectile dysfunction,缩写:ED),为男性性功能障碍的一种,其特征在于阴茎在性行为期间无法勃起或维持勃起:538-39。勃起功能障碍可能会产生心理上的后果,因为它与关系
- 酰化酰化反应或称(酰基化反应),为有机化学中,氢或者其它基团被酰基取代的反应,而提供酰基的化合物,称为酰化剂。酰化反应,可依攻击的亲核试剂不同,可分为:氧酰化反应、氮酰化反应、碳酰
- 考试中华民国(台湾)国家考试在台湾可远溯自清治时期的科举,而近现代的台湾国家考试则可推自日治时期的国家律师考试、国家司法官考试、汉方医师考试及(西医)医师国家考试等等。现在国
- 空谷期空谷期(Kungurian),又译作空谷尔期、孔古阶或昆古尔阶,是地质年代二叠纪早期的乌拉尔世(或作乌拉尔统)早期的一个期。空谷尔期在283.5到272.95百万年之间,罗德期(Roadian)之前、亚丁
- 长尾水獭长尾水獭(Lontra longicaudis)是分布在中美洲、南美洲及特立尼达的水獭。长尾水獭栖息在不同的河流环境,包括落叶林及常绿森林、大草原等。它们似乎较喜欢清澈的河流,较少在污浊
- 比拉河坐标:48°58′48″N 131°41′02″E / 48.98000°N 131.68389°E / 48.98000; 131.68389比拉河(俄语:Бира),是俄罗斯的河流,位于该国东南部犹太自治州,属于黑龙江的支流,河道全
- 汝阳县坐标:34°09′12″N 112°27′55″E / 34.153336°N 112.465204°E / 34.153336; 112.465204汝阳县,原称伊阳县,位于中国河南省中西部,是洛阳市东南部下辖的一个县。2003年人口4
- 大花白猪大花白猪是中国猪优良品种之一,原产珠江三角洲。大花白猪被毛黑白斑,嘴呈圆筒状,耳下垂,前躯、中躯发育良好,腹部稍大,腰背微凸。有生长快、肉质佳、适应性强等优点。成年公猪约13
- 金斯顿 (安大略省)金斯顿(英语:Kingston,又译金斯敦、京士顿)是加拿大安大略省东南部一座城市,位于安大略湖北岸,圣劳伦斯河入口附近。金斯顿坐落魁北克市-温莎走廊之上,离多伦多东北约240千米(150英
- 连二硫酸钠连二硫酸钠(Sodium dithionate,Na2S2O6)是无机化学的重要化合物。可以认为这里的硫处于+5氧化态 。 连二硫酸钠不应与连二亚硫酸钠,Na2S2O4混淆,后者是一种完全不同的化合物,是一