2016-05-30 3 views
0

Фон: Я выполняю тесты с TestNG, и у меня есть класс, аннотированный с помощью @Test, который генерирует число или ID, если хотите, и тот же номер является входным значением моего второго теста. Можно ли передавать значения между тестами TestNG?Значения пропусков между тестами TestNG

+2

Тесты должны быть автономными, поэтому для меня это кажется плохой практикой. Если вы разместите свой код, было бы легче помочь. – michaelsnowden

+0

Тестовый кейс является сквозным, поэтому я хочу проследить номер дела, который я создал в первом тестовом случае, вплоть до закрытия. –

+0

Вам нужно будет самостоятельно обработать - создать переменную, которая будет использоваться в тестах. Если вы работаете параллельно, убедитесь, что вы справляетесь с этим, используя threadlocal для ввода вашей переменной. –

ответ

0

Вы должны создать один тест, который обрабатывает весь корпус. Испытания не могут зависеть друг от друга, это считается плохой практикой. Если вы используете maven, порядок выполнения тестов может быть различным в разных средах.

0

Плохая практика или нет, ее можно выполнить, просто используя поля классов. Просто убедитесь, что ваши дела выполнены в предсказуемом порядке (например, с использованием функции @Test (приоритет) или dependOn TestNG).

0

Несомненно. Например, если у вас есть два связанных теста, вы можете передать значения из одного теста другому с помощью атрибутов тестового контекста:

@Test 
public void test1(ITestContext context) { //Will be injected by testNG 
    /* Do the test here */ 
    context.setAttribute("myOwnAttribute", "someTestResult"); 
} 

@Test(dependsOnMethods = "test1") 
public void test2(ITestContext context) { //Will be injected by testNG 
    String prevResult = (String) context.getAttribute("myOwnAttribute"); 
} 
Смежные вопросы