📜  在TestNG中排除包含测试用例(1)

📅  最后修改于: 2023-12-03 15:07:56.551000             🧑  作者: Mango

在TestNG中排除包含测试用例

当我们使用TestNG作为自动化测试框架时,通常需要执行多个测试用例。但是,有时候我们可能需要排除一些测试用例,以便更加关注其他测试用例。本文将介绍在TestNG中排除包含测试用例的方法。

1. 使用testng.xml文件

testng.xml文件是TestNG中配置测试用例的文件。通过编辑该文件,我们可以指定需要执行的测试用例和需要排除的测试用例。

示例:testng.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Test Suite" verbose="1">
    <test name="Test Case#1">
        <classes>
            <class name="com.example.Test1"/>
        </classes>
    </test>
    <test name="Test Case#2">
        <classes>
            <class name="com.example.Test2"/>
        </classes>
    </test>
    <test name="Test Case#3">
        <classes>
            <class name="com.example.Test3"/>
        </classes>
    </test>
    <!-- 排除指定测试用例 -->
    <exclude name="Test Case#2"/>
</suite>

在上例中,我们通过exclude标签排除了Test Case#2测试用例。当我们执行testng.xml文件时,Test Case#2将不会被执行。

2. 使用groups标签

TestNG中的groups标签允许我们根据分组来执行测试用例。我们可以将一个或多个测试用例分配到一个或多个组。

示例:分配测试用例到分组

public class Test1 {
    @Test (groups = { "group1" })
    public void test1() {
        System.out.println("Test1#test1");
    }
}

public class Test2 {
    @Test (groups = { "group2" })
    public void test2() {
        System.out.println("Test2#test2");
    }
}

public class Test3 {
    @Test (groups = { "group1", "group2" })
    public void test3() {
        System.out.println("Test3#test3");
    }
}

现在,我们可以根据group1或group2分组来执行测试用例。但如果我们想排除某些测试用例的话,该怎么办?

TestNG中提供了一个excludeGroups标签,可以用来排除指定分组的测试用例。

示例:排除指定分组的测试用例

<suite name="Test Suite" verbose="1">
    <test name="Test Case">
        <packages>
            <package name="com.example" />
        </packages>
        <!-- 排除group2分组 -->
        <excludeGroups>group2</excludeGroups>
    </test>
</suite>

在上例中,我们通过excludeGroups标签排除了group2分组的测试用例。当我们执行testng.xml文件时,属于group2分组的测试用例将不会被执行。

3. 使用enabled属性

除了使用testng.xml文件和groups标签以外,我们还可以直接在测试用例上使用enabled属性来排除某些测试用例。 示例:使用enabled属性排除指定测试用例

public class Test1 {
    @Test (enabled = true)
    public void test1() {
        System.out.println("Test1#test1");
    }
}

public class Test2 {
    @Test (enabled = false)
    public void test2() {
        System.out.println("Test2#test2");
    }
}

在上例中,我们使用enabled属性排除了Test2测试用例。当我们执行该测试类时,Test2将不会被执行。

结论

使用TestNG时,我们可以通过testng.xml文件、groups标签或者enabled属性来排除指定的测试用例。根据实际需求选择最合适的方法,以便更好地管理测试用例的执行。