TestNG — переменная области Test/Suite, доступная для выполнения одного класса/метода

Я пытаюсь разрешить параметры, указанные через testng.xml для всего набора или для всего теста, чтобы они были доступны для выполнения одного теста. например

в testng.xml

<suite name="All">
    <test name="test1">
        <parameter name="test-wide-param" value="sharedvalue"/>
        <packages>
            <package name=".*">
                <include name=".*" />
            </package>
        </packages>
    </test>
</suite>

в тестовом классе:

@Parameter("test-wide-param")
@BeforeTest
public void globalSetUp(String sharedInfo){
    value = sharedInfo;
}

@Test
public void test(){
    //use value
}

Он работает очень хорошо, когда я выполняю весь набор тестов, но терпит неудачу, когда я пытаюсь запустить один тестовый класс/метод. Каков правильный способ реализации этого? Спасибо.


person BZapper    schedule 12.06.2014    source источник


Ответы (1)


Ваш вопрос не имеет смысла. При выполнении одного тестового класса или метода вы не используете конфигурацию XML. Eclipse генерирует набор на лету. Если вы хотите использовать что-то подобное, я бы предложил файл свойств Java. Если вы используете Spring или Maven, оба имеют очень хорошую поддержку файлов свойств. Если вы этого не сделаете, есть много способов довольно легко реализовать это самостоятельно.

person Rick    schedule 12.06.2014
comment
Есть глобальные параметры, перезаписываемые на уровне набора тестов, что приятно. Думаю, тогда нам придется использовать файлы свойств и настраивать их специально для каждого набора тестов. Грустные новости :( - person BZapper; 12.06.2014