TestNG
✍ dations ◷ 2025-04-04 20:29:20 #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的目标则更广泛,不仅包括单元测试,还支持集成测试和验收测试等。哪一个更好或更适合,取决于使用情况和要求。
相关
- 朝圣旅游朝圣旅游吸引新纪元运动的信仰者或者相关人士到地球上“心灵热地”的旅游方式。神圣旅游的目的地往往是一些起源比较神秘的地方,比如埃及金字塔、秘鲁的马丘比丘或者英国的巨
- 功能性灭绝功能性灭绝(Functional extinction),是指一个物种或分类单元已达以下状况:在IUCN红色名录中,一个不再有最近观察纪录,已经功能性灭绝的物种,除非真的确定最后一只个体已死亡,否则会
- 黄埔条约《黄埔条约》(法语:Traité de Huangpu或traité de Whampoa)又称《中法五口通商章程》,是法国与清朝签订的一个不平等条约。1844年(道光二十四年),清朝政府代表两广总督耆英与法国
- 菲利普·罗斯菲利普·米尔顿·罗斯(英语:Philip Milton Roth,1933年3月19日-2018年5月22日),美国小说家、作家,代表作包含描述美国犹太人生活的小说《再见,哥伦布》,并获得美国国家图书奖的肯定。
- 甲卡西酮甲卡西酮(英语:Methcathinone)α-甲基氨基苯丙酮,又称甲基卡西酮,是中国Ⅰ类精神管制药物、台湾第二级毒品。因类似浴盐,故俗称“浴盐”。甲卡西酮于1928年首次合成。1982年在列宁
- 托莱多托莱多(西班牙语:Toledo,西班牙语:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code2000","Gentium"
- 行军蚁行军蚁(英文:Army Ant)又称“军团蚁”,蚁科部分族群(亚科)的泛称,它们与其他生物不同之处就是它们会聚在一起组成侵略小组。侵略小组会在陆地上行走,攻击猎物。另一个共同特征是,行军
- 纸浆用木材纸浆用木材是指切割并制造木浆和造纸的木材。在混合林的采伐中,好一些的树用于制造木材的原木,而次一些的树和枝杈被采伐作为纸浆用木材。然而,由于纸浆的低价格,通常只有采伐作
- 三少爷的剑《三少爷的剑》(英文:Death Duel)1977年邵氏出品,楚原导演,尔冬升、余安安、凌云主演,根据古龙1975年的同名武侠小说改编的武侠电影。也是当年十九岁的尔冬升第一次挑大梁担纲主演
- 徐文长徐渭(1521年3月12日-1593年),字文长,号青藤老人、青藤道士、天池生、天池山人、天池渔隐、金垒、 金回山人、山阴布衣、白鹇山人、鹅鼻山侬、田丹水、田水月,中国明代文学家、书画