TestNG:使用Testng XML文件运行特定的组测试

问题描述

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

  • 并行测试
  • 顺序测试
  • 烟雾测试

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

  • IntelliJ
  • 行家
  • TestNG
  • Java

请帮助。请参阅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>

解决方法

下面的XML Suite应该运行所有具有“烟雾测试”组的测试方法

<?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>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...