TestNG配置

上传人:l**** 文档编号:45026625 上传时间:2018-06-14 格式:DOCX 页数:25 大小:67.96KB
返回 下载 相关 举报
TestNG配置_第1页
第1页 / 共25页
TestNG配置_第2页
第2页 / 共25页
TestNG配置_第3页
第3页 / 共25页
TestNG配置_第4页
第4页 / 共25页
TestNG配置_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《TestNG配置》由会员分享,可在线阅读,更多相关《TestNG配置(25页珍藏版)》请在金锄头文库上搜索。

1、TestNG2011-05-12 18:41 5134 人阅读 评论(0) 收藏 举报 测试 javadocannotationsjunitparametersclass1. 介绍TestNG 是一个设计用来简化广泛的测试需求的测试框架,从单元测试(隔离测试一个类)到集成测试(测试由有多个类多个包甚至多个外部框架组成的整个系统,例如运用服务器)。编写一个测试的过程有三个典型步骤:* 编写测试的 业务逻辑并在代码中插入 TestNG annotation* 将测试信息添加到 testng.xml 文件或者 build.xml 中* 运行 TestNG在欢迎页面上可以找到快速入门示例。下面是这篇文

2、档使用的概念:* suite 由 xml 文件描述。它包含一个或多个测试并被定义为标签* test 由描述并包含一个或者多个 TestNG 类* TestNG 类是包含至少一个 TestNG annotation 的 java 类,由标签描述并包含一个或多个测试方法* 测试方法是源文件中带有Testd 注释的 java 方法TestNG 测试可以被BeforeXXX 和 AfterXXX annotations 配置,容许在特定点的前后执行一些 java 逻辑,这些点上面已经列出。这份手册的剩余部分将讲述以下内容:* 所有的 annotation 列表并带有简短说明,为 TestNG 的多种功

3、能性提供参考, 你可能需要参考为每个annotation 提供的代码片段来学习细节。* testng.xml 文件描述,它的语法和如果指定它。* 多个特性的详细列表和怎样结合 annotation 和 testng.xml 来使用它们*注:上面的内容很简短,但是请注意其中的一些细节。1. TestNG 是一个设计用来简化广泛的测试需求的测试框架,从单元测试到集成测试这个是 TestNG 设计的出发点,不仅仅是单元测试,而且可以用于集成测试。设计目标的不同,对比 junit的只适合用于单元测试,TestNG 无疑走的更远。可以用于集成测试,这个特性是我选择 TestNG 的最重要的原因。2. 测

4、试的过程的三个典型步骤,注意和 junit(4.0)相比,多了一个将测试信息添加到 testng.xml 文件或者build.xml测试信息尤其是测试数据不再写死在测试代码中,好处就是修改测试数据时不需要修改代码/编译了,从而有助于将测试人员引入单元测试/集成测试。3. 基本概念,相比 junit 的 TestCase/TestSuite,TestNG 有 suite/test/test method 三个级别,即将 test/test method 明确区分开了。junit 中的 TestCase 将 test/test method 混合,比较容易让人概念不清晰,尤其是新手。2 - Ann

5、otation这里是 TestNG 中用到的 annotation 的快速预览,还有它们的属性。BeforeSuite: 被注释的方法将在所有测试运行前运行AfterSuite: 被注释的方法将在所有测试运行后运行BeforeTest: 被注释的方法将在测试运行前运行AfterTest: 被注释的方法将在测试运行后运行BeforeGroups: 被配置的方法将在列表中的 gourp 前运行。这个方法保证在第一个属于这些组的测试方法调用前立即执行。AfterGroups: 被配置的方法将在列表中的 gourp 后运行。这个方法保证在最后一个属于这些组的测试方法调用后立即执行。BeforeClas

6、s: 被注释的方法将在当前类的第一个测试方法调用前运行。AfterClass: 被注释的方法将在当前类的所有测试方法调用后运行。BeforeMethod: 被注释的方法将在每一个测试方法调用前运行。AfterMethod: 被注释的方法将在每一个测试方法调用后运行。属性:alwaysRun 对于每个 bufore 方法(beforeSuite, beforeTest, beforeTestClass 和 beforeTestMethod, 但是不包括 beforeGroups): 如果设置为 true,被配置的方法将总是运行而不管它属于哪个组。对于 after 方法(afterSuite, a

7、fterClass, .): 如果设置为 true,被配置的方法甚至在一个或多个先调用的方法失败或被忽略时也将运行。dependsOnGroups 这个方法依赖的组列表dependsOnMethods 这个方法依赖的方法列表enabled 这个类的方法是否激活groups 这个类或方法所属的分组列表inheritGroups 如果设置为 true,这个方法被属于在类级别被Test annotation 指定的组DataProvider 标记一个方法用于为测试方法提供数据。被注释的方法必须返回 Object, 其中每个 Object可以指派为这个测试方法的参数列表。从这个 DataProvide

8、r 接收数据Test 方法需要使用一个和当前注释相同名称的 dataProvider 名称name 这个 DataProvider 的名称Factory 标记方法作为一个返回对象的工厂,这些对象将被 TestNG 用于作为测试类。这个方法必须返回ObjectParameters 描述如何传递参数给Test 方法value 用于填充这个方法的参数的变量列表Test 标记一个类或方法作为测试的一部分alwaysRun 如果设置为 true,这个测试方法将总是运行,甚至当它依赖的方法失败时。dataProvider 这个测试方法的 data provider 的名称dataProviderClass

9、 用于查找 data provider 的类。如果不指定,将在当前测试方法所在的类或者它的基类上查找 data provider。如果这个属性被指定, 则 data provider 方法需要是指定类的 static 方法。dependsOnGroups 当前方法依赖的组列表dependsOnMethods 当前方法依赖的方法列表description 当前方法的描述enabled 当前类的方法/方法是否被激活expectedExceptions 测试方法期望抛出的异常列表。如果没有异常或者抛出的不是列表中的任何一个,当前方法都将标记为失败.groups 当前类/方法所属的组列表invocat

10、ionCount 当前方法被调用的次数successPercentage 当前方法期望的成功率sequential 如果设置为 true,当前测试类上的所有方法保证按照顺序运行。甚至测试们在 parallel=“true“的情况下.这个属性只能用于类级别,如果用于方法级别将被忽略。timeOut 当前方法容许花费的最大时间,单位毫秒。threadPoolSize 当前方法的线程池大小。方法将被多线程调用,次数由 invocationCount 参数指定注意:如果 invocationCount 没有指定则这个属性将被忽略注:上面是 TestNG 中用到的 annotation 列表,从中我们可

11、以看到 TestNG 提供的一些特性1. before 方法和 after 方法 带来了足够丰富的测试生命周期控制2. dependsOnGroups/dependsOnMethods 提供了依赖检查机制,并可以严格控制执行顺序3. DataProvider 使得对同一个方法的测试覆盖变的非常轻松,非常适合进行边界测试,只要给出多种测试数据就可以针对一个测试方法进行覆盖4. expectedExceptions 使得异常测试变的非常轻松5. invocationCount/threadPoolSize 终于可以简单的直接进行多线程测试了,这个绝对是 junit 的超级弱项,回想 junit 中

12、那个万恶的 System.exist(0).6. timeOut 终于不用死等然后手工强行关闭测试,TestNG 想的太周到了TestNG 官方文档中文版(3)-testng.xml TestNG 的官方文档的中文翻译版第 3 章,原文请见 http:/testng.org/doc/documentation-main.html3 - testng.xml调用 TestNG 由几种不同方法:* 使用 testng.xml 文件* 使用 ant* 从命令行这节描述 testng.xml 的格式(文档的后面会讲到 ant 和命令行)。当前 testng.xml 的 DTD 文件可以从官方找到:ht

13、tp:/testng.org/testng-1.0.dtd。(为了方便使用,你可能更喜欢浏览 HTML 版本)。下面是 testng.xml 文件的一个例子:xhtml view plaincopyprint?1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 你可以指定包名替代类名:xhtml view plaincopyprint?1. 2. 3. 4. 5. 6. 7. 8. 在这个例子中,TestNG 将在包 test.sample 中查找所有的类,并只保留带有 TestNG annotation 的类。你同样可以指定包含或不包含的组和

14、方法:xhtml view plaincopyprint?1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 你同样可以在 testng.xml 中定义新的组,指定属性的额外详细情况,比如是否并行运行测试,使用多少线程,是否运行 junit 测试,等等.请查看 DTD 文件了解完整的特性列表。4 - 运行 TestNGTestNG 可以以不同的方式调用:* Command line* ant* Eclipse* IntelliJs IDEA1) 命令行假设你已经将 TestNG 加入到 class path,调用 TestNG 最简单的方法事下面的:java org.testng.TestNG testng1.xml testng2.xml testng3.xml .必须指定最少一个描述你试图测试的 TestNG suite 的 xml 文件。另外,下面的命令行参数可以使用:命令行参数列表选项 参数 文档说明-d 一个目录 生成报告的目录( test-output)-sourcedir 分号隔开的目录列表 带有 javadoc 注释的测试源文件目录. 这个选项只在使用 j

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号