在TestNg中无法使用包含标签的组

时间:2018-10-03 18:03:16

标签: testng

我想将测试API分为2组,并根据需要在testng xml中运行任何一组。

但是include标签中提到的方法总是被执行,而与Groups无关。我无法以任何方式在TestNg中实现此功能,因为我无法避免使用include标签。

我的Test类和对应的xml如下;

package com.eci.raft.tests.shadetree;

import java.io.IOException;

import org.testng.annotations.Test;

public class TestClass {

    @Test(groups= {"WithOuthardware","Withhardware"})
    public void configureApi() {
        System.out.println("Configure");
    }

    @Test(groups= {"Withhardware"})
    public void validateApi() throws IOException {
        System.out.println("Validate");
        throw new IOException();
    }

}

TestNg.xml

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="SuiteTest">
    <groups>
        <run>
            <include name="WithOuthardware"></include>
        </run>
    </groups>
    <test name="Test1" >
        <classes>
            <class name="com.eci.raft.tests.shadetree.TestClass">
                <methods>
                    <include name="validateApi"></include>
                </methods>
            </class>
        </classes>
    </test>

    <test name="Test2">
        <classes>
            <class name="com.eci.raft.tests.shadetree.TestClass">
            </class>
        </classes>
    </test>
</suite>

“ Test1”中的“ validateApi”即使未使用“ WithOuthardware”组名进行标记,也会执行。

感谢和问候,

Venkatesh Ganesan

2 个答案:

答案 0 :(得分:0)

不确定我是否正确理解了问题,但是您可以尝试类似的方法。

<div class="divider3">
        <p class="item-1">"Super fast service and clean environment!" <br /> - John Anderson, GA</p>
        <p class="item-2">"Plans have changed and I had to have a conference room within an hour and ThanksOffice was perfect for it!" <br /> - Ashley Green, CA</p>
        <p class="item-3">"Very professional and satisfies every need." <br /> - Sam Smith, NJ</p>
    </div>

您可以使用测试的组/优先级/依赖性。

<test name="Some random test">
    <groups>
        <run>
            <include name="group1" />
            <include name="group2" />
        </run>
    </groups>
    <classes>
        <class name="com.eci.raft.tests.shadetree.TestClass" />
    </classes>
</test>

<test name="Some random test 2">
    <groups>
        <run>
            <include name="group2" />
        </run>
    </groups>
    <classes>
        <class name="com.eci.raft.tests.shadetree.TestClass" />
    </classes>
</test>

让我们知道是否还有其他需要帮助的地方。

答案 1 :(得分:0)

我认为问题出在您的xml上,这有点矛盾,因为它显式地包含了您不想包含的方法。您可以通过仅提供类来简化它并消除冲突,为XML尝试一下,看看它是否对您有用。

<suite name="SuiteTest">
    <groups>
        <run>
            <include name="WithOuthardware"></include>
        </run>
    </groups>
    <test name="Test" >
        <classes>
            <class name="com.eci.raft.tests.shadetree.TestClass">
            </class>
        </classes>
    </test>
</suite>