TestNG组
时间:2020-02-23 14:41:56 来源:igfitidea点击:
TestNG Groups是其非常重要和有用的功能之一。
我们可以为TestNG方法指定组,它可以与@ Before,@ After和@Test方法一起使用。
TestNG组
一旦为TestNG方法定义了组,就可以运行特定的组。
我们可以包括要执行的组,不包括组。
我们还可以创建一组组。
让我们用几种方法创建一个TestNG测试类,并将它们分配给不同的组。
package com.theitroad.groups; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class TestNGGroupsExample { @Test(groups = "foo") public void foo() { System.out.println("foo"); } @Test(groups = "bar") public void bar() { System.out.println("bar"); } @Test(groups = { "alpha", "sanity" }) public void alpha() { System.out.println("alpha"); } @Test(groups = { "beta", "integration" }) public void beta() { System.out.println("beta"); } @BeforeClass(groups = "integration") public void beforeIntegrationTests() { System.out.println("Before Running integration test methods"); } @AfterClass(groups = "integration") public void afterIntegrationTests() { System.out.println("Before Running integration test methods"); } }
使用Eclipse TestNG运行配置运行TestNG组
当我们在Eclipse中执行TestNG类时,它将执行所有组。
我们可以为特定的组创建一个运行配置以执行。
前往运行|运行配置。
浏览您的项目,然后选择"组"复选框,然后单击"浏览"按钮。
它将显示项目中定义的所有组。
选择要执行的组,您将看到下图所示的配置。
单击"应用"按钮以保存配置。
单击"运行"按钮运行配置,它将仅执行指定的组。
您应该在Eclipse控制台中获得以下输出。
[RemoteTestNG] detected TestNG version 6.14.3 bar foo PASSED: bar PASSED: foo =============================================== GRP-bar,foo Tests run: 2, Failures: 0, Skips: 0 =============================================== =============================================== TestNG-Examples by groups Total tests run: 2, Failures: 0, Skips: 0 ===============================================
TestNG XML Suite组示例
我们可以使用groups元素将测试套件配置为运行特定的组。
在TestNG XML套件下面,将仅运行foo
和bar
组方法。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd"> <suite name="TestNGXMLTest Test Suite"> <groups> <run> <include name="foo"></include> <include name="bar"></include> </run> </groups> <test name="TestNGXMLTest Test"> <classes> <class name="com.theitroad.groups.TestNGGroupsExample" </classes> </test> </suite>
TestNG XML包含排除组示例
有时,我们的方法将成为多个组的一部分。
如果该方法是包含组和排除组的一部分,则将其从执行中排除。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd"> <suite name="TestNGXMLTest Test Suite"> <groups> <run> <include name="alpha"></include> <include name="beta"></include> <exclude name="integration"></exclude> </run> </groups> <test name="TestNGXMLTest Test"> <classes> <class name="com.theitroad.groups.TestNGGroupsExample" </classes> </test> </suite>
上面的测试套件将不会执行" beta()"方法,因为其组之一在排除组列表中。
TestNG组正则表达式
TestNG组配置支持正则表达式。
如果我们将包含的组更改为" include name ="。
- o。
*"",则它将仅执行foo()和beta()方法。
这是因为它们属于名称包含字母" o"的组。
TestNG默认组
如果我们希望所有Test类方法都属于特定组,则可以在类级别进行配置。
@Test(groups="default") public class TestNGGroupsExample { //test methods }
TestNG组组
我们可以在TestNG XML文件中定义组组。
然后,我们可以在测试套件中使用它。
请注意,只能在测试级别而不是套件级别内部进行此操作。
让我们看一个简单的示例,该示例在TestNG XML文件中定义组,然后使用它们。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd"> <suite name="TestNGXMLTest Test Suite"> <test name="TestNGXMLTest Test"> <groups> <define name="include-groups"> <include name="sanity" <include name="integration" </define> <define name="exclude-groups"> <include name="foo" <include name="bar" </define> <run> <include name="include-groups" <exclude name="exclude-groups" </run> </groups> <classes> <class name="com.theitroad.groups.TestNGGroupsExample" </classes> </test> </suite>