Группы, не работающие с тегом включения в TestNg - PullRequest
0 голосов
/ 03 октября 2018

Я хочу разделить тестовый API на 2 группы и запустить любую группу в testng xml в соответствии с требованиями.

Но метод, упомянутый в теге include, всегда выполняется независимо от групп.Можно ли как-нибудь реализовать эту функцию в 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>

Здесь «validateApi» в «Test1» выполняется, даже если он не помечен именем группы «WithOuthardware».

Спасибо и всего наилучшего,

Венкатеш Ганесан

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

Я полагаю, что проблема была с вашим 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>
0 голосов
/ 04 октября 2018

Не уверен, правильно ли я понял вопрос, но вы можете попробовать что-то подобное.

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

Вы можете играть с группами / приоритетами / зависимостями тестов.

@Test(groups={"group1"}, priority=0)
@Test(groups={"group2"}, dependsOnGroups="groupX", priority=1)

Дайте нам знать, если есть что-то еще, чтобы помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...