Параметризация на уровне группы

Я хочу параметризовать группы в testng.xml и потом получить данные с DataProvider.

  1. Я хочу запустить метагруппу и группу, входящую в метагруппу, но с другим параметром. Такое впечатление, что если группа входит в метагруппу, второй раз она не запускается. Мой вариант использования — веб-сайт с разными ролями пользователей (супергруппа должна тестироваться с точки зрения администратора, группа 1 должна тестироваться только как посетитель).

    <suite name="Suite1" verbose="1" parallel="false">
        <test name="Test1">
            <groups>
                <define name="supergroup">
                    <include name="group1" />
                    <include name="group2" />
                </define>
                <run>
                    <include name="supergroup">
                        <parameter name="config" value="super" />
                    </include>
                    <include name="group1">
                        <parameter name="config" value="first" />
                    </include>
                </run>
            </groups>
            <packages>
                <package name="com.company.test.*" />
            </packages>
        </test>
    </suite>
    
  2. Я хочу получить параметры с помощью DataProvider и ввести их в тестовые классы. ITestContext, по-видимому, не предоставляет возможности доступа к параметрам, определенным ниже уровня тестирования.

    @DataProvider(name = "test", parallel = false)
    public static Object[][] testDataProvider(ITestContext context){
    
        String config = context.getCurrentXmlTest().getParameter("config");
    
        Object[][] back = new Object[1][1];
    
        back[0] = new Object[] { config };
    
        return back;
    }
    

person Franz Ebner    schedule 27.02.2013    source источник


Ответы (1)


Я могу сделать это так:

<suite name="Suite1" verbose="1" parallel="false">
    <test name="SuperTest">
        <parameter name="config" value="super" />
        <groups>
            <run>
                <include name="group2" />
                <include name="group1" />
            </run>
        </groups>
        <packages>
            <package name="com.company.test.*" />
        </packages>
    </test>
    <test name="SubTest">
        <parameter name="config" value="sub" />
        <groups>
            <run>
                <include name="group1"/>
            </run>
        </groups>
        <packages>
            <package name="com.company.test.*" />
        </packages>
    </test>
</suite>

Хотя я, кажется, не понимаю шаблон группы

person Franz Ebner    schedule 27.02.2013