首页 > 解决方案 > TestNG:使用 Testng XML 文件运行特定的组测试

问题描述

我有一个 testng xml 文件,该文件设置为运行特定类,该类具有包含以下组标记的方法或被分组为以下之一:

虽然我的一些测试被指定为并行或顺序,但一些测试可能包含一个额外的标签“烟雾测试”。在这种情况下,我希望能够运行那些被分组为“烟雾测试”的项目。当我运行测试时,它要么找不到任何测试,要么只运行分组为“顺序测试”的所有测试。我似乎无法将此 xml 文件的测试运行限制为仅分组为“烟雾测试”的那些测试。在同一个类中,我有多个 testNG 方法,它们具有“并行测试”组或“顺序测试”组。看起来 TestNG xml 文件所做的只是忽略了“并行测试”组。太好了,但是如果有包含组“并行测试”和“烟雾测试”的 Testng 方法怎么办?我想运行每个测试,无论它是用于并行测试还是顺序测试,但仅限于那些具有附加组标签“smoke-test”的测试。我的环境如下:

请帮忙。请参阅 WebTest.Test 类中的示例测试方法:

@Test(groups = {"sequential-test","smoke-test"},description = "Test will validate something")
public void RunTest()
{
    //do something

}

这是下面的示例 xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!--This is a template to be modified for QA environment tests-->
<suite name="Smoke Test">
    <listeners>
        <listener class-name="Listeners.Listeners"/>
        <listener class-name="Listeners.ExtentListeners"/>
    </listeners>
    <parameter name="environment" value="QA"></parameter>
    <test verbose="2" name="Sequential tests" parallel="methods" thread-count="1">
        <!--<groups>
            <run>
                <exclude name="parallel-test"/>
            </run>
        </groups>-->
        <classes>
            <class name="WebTests.Test">
                <methods>
                    <include name="smoke-test"/>
                </methods>
            </class>
        </classes>
    </test>
</suite>

标签: javaseleniumselenium-webdrivertestngtestng.xml

解决方案


下面的 XML Suite 应该运行具有组 'smoke-test' 的所有测试方法

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!--This is a template to be modified for QA environment tests-->
<suite name="Smoke Test">
    <listeners>
        <listener class-name="Listeners.Listeners"/>
        <listener class-name="Listeners.ExtentListeners"/>
    </listeners>
    <parameter name="environment" value="QA"></parameter>
    <test verbose="2" name="Sequential tests" parallel="methods" thread-count="1">
       <groups>
            <run>
                <include name="smoke-test"/>
            </run>
        </groups>
        <classes>
            <class name="WebTests.Test"/>

        </classes>
    </test>
</suite>

推荐阅读