[跟着官方文档学TestNG][二][学习笔记]

网友投稿 603 2022-05-29

[跟着官方文档学TestNG][二][学习笔记]

1.注解

下面是对TestNG中可用注解及其属性的快速概述。

@BeforeSuite:带注解的方法将在该套件中的所有测试运行之前运行。 @AfterSuite:该套件中的所有测试都运行后,将运行带注解的方法。 @BeforeTest:带注解的方法将在属于 标记内的类的任何测试方法运行之前运行。 @AfterTest:被注解的方法将在属于 标签内的类的所有测试方法都运行后运行。 @BeforeGroups:此配置方法将在之前运行的组列表。此方法保证在调用属于这些组中的任何组的第一个测试方法之前不久运行。 @AfterGroups:此配置方法将运行的组列表。此方法保证在调用属于任何这些组的最后一个测试方法后不久运行。 @BeforeClass:被注解的方法会在当前类的第一个测试方法被调用之前运行。 @AfterClass:被注解的方法会在当前类的所有测试方法都运行完之后运行。 @BeforeMethod:注解的方法将在每个测试方法之前运行。 @AfterMethod:注解的方法将在每个测试方法之后运行。 TestNG类的超类中注解的行为 当放置在TestNG类的超类上时,上面的注解也将被继承。例如,这对于在一个公共超类中集中多个测试类的测试设置很有用。 在这种情况下,TestNG保证"@Before"方法以继承顺序执行(首先是最高的超类,然后沿着继承链向下),而"@After"方法以相反的顺序执行(沿着继承链向上)。 alwaysRun: 对于before方法(beforeSuite、beforeTest、beforeTestClass和beforeTestMethod,但不是beforeGroups):如果设置为true,则无论属于哪个组,都会运行此配置方法。 对于after方法 (afterSuite, afterClass, ...):如果设置为true,即使之前调用的一个或多个方法失败或被跳过,也会运行此配置方法。 dependsOnGroups: 此方法所依赖的组列表。 dependsOnMethods: 此方法所依赖的方法列表。 enabled: 是否启用此类/方法上的方法。 groups: 该类/方法所属的组列表。 inheritGroups: 如果为true,则此方法将属于在类级别的@Test注解中指定的组。 onlyForGroups: 仅适用于@BeforeMethod和@AfterMethod。如果指定,则仅当相应的测试方法属于列出的组之一时才会调用此setUp/teardown方法。

@DataProvider:将方法标记为为测试方法提供数据。带注解的方法必须返回一个Object[][],其中每个Object[]都可以分配测试方法的参数列表。想要从这个DataProvider接收数据的@Test方法需要使用一个与这个注解名称相同的dataProvider名称。 name: 此数据提供者的名称。如果未提供,则此数据提供者的名称将自动设置为方法的名称。 parallel: 如果设置为true,则使用此数据提供程序生成的测试将并行运行。默认值为false。

@Factory:将方法标记为工厂,该工厂返回将由TestNG用作测试类的对象。该方法必须返回Object[]。

@Listeners:在测试类上定义监听器 value: 扩展org.testng.ITestNGListener的类数组。

@Parameters:描述如何将参数传递给@Test方法。 value: 用于填充此方法的参数的变量列表。

@Test:将类或方法标记为测试的一部分。 alwaysRun: 如果设置为true,即使它依赖于失败的方法,该测试方法也将始终运行。 dataProvider: 此测试方法的数据提供者的名称。 dataProviderClass: 查找数据提供者的类。如果未指定,则将在当前测试方法的类或其基类之一上查找数据提供者。如果指定了此属性,则数据提供者方法需要在指定类上是静态的。 dependsOnGroups: 此方法所依赖的组列表。 dependsOnMethods: 此方法所依赖的方法列表。 description: 此方法的说明。 enabled: 是否启用此类/方法上的方法。 expectedExceptions: 测试方法预期抛出的异常列表。如果没有抛出异常或与此列表中的异常不同,则此测试将被标记为失败。 groups: 该类/方法所属的组列表。 invocationCount: 应调用此方法的次数。 invocationTimeOut: 对于所有调用计数的累积时间,此测试应花费的最大毫秒数。如果未指定invocationCount,则此属性将被忽略。 priority: 此测试方法的优先级。较低的优先级将首先被安排。 successPercentage: 此方法预期的成功百分比。 singleThreaded: 如果设置为true,则该测试类上的所有方法都保证在同一个线程中运行,即使当前正在使用parallel="methods"运行测试。此属性只能在类级别使用,如果在方法级别使用,它将被忽略。注意:此属性过去称为sequential(现在已弃用)。 timeOut: 此测试应花费的最大毫秒数。 threadPoolSize: 此方法的线程池大小。该方法将从invocationCount指定的多个线程中调用。注意:如果未指定 invocationCount,则忽略此属性。

2.testing.xml

你可以通过几种不同的方式调用TestNG:

testing.xml文件

ant

命令行

这里介绍testng.xml的格式。下面是testing.xml文件

也可以指定包名而不是类名:

在这个例子中,TestNG将查看com.example包中的所有类,并且只保留具有TestNG注解的类。

还可以指定要包含和排除的组和方法:

还可以在testng.xml中定义新组并在属性中指定其他详细信息,例如是否并行运行测试、要使用多少线程、是否正在运行JUnit测试等…

默认情况下,TestNG将按照它们在XML文件中的顺序运行测试。如果希望此文件中列出的类和方法以不可预知的顺序运行,请将preserve-order属性设置为false

Java

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:每个程序员都应该知道的50个Web开发术语
下一篇:Doxygen 介绍和下载,安装
相关文章