Allure TestNG: имена пользовательских тестовых методов при использовании @DataProvider - PullRequest
1 голос
/ 11 июня 2019

Я использую адаптер allure-testng (2.12.1) в моих тестах java testng. У меня есть тесты, которые используют @DataProvider. Мой тест реализует ITest для изменения имени экземпляра метода теста во время выполнения. Когда я запускаю тесты, я вижу разные имена методов тестирования, но в allure-report он показывает один и тот же метод тестирования для каждого запуска теста. Как настроить отчет Allure, чтобы он отображался как IDE?

@Listeners({AllureTestNg.class, EmailableReporter.class})
public class AllureTests implements ITest {
    private ThreadLocal<String> testName = new ThreadLocal<>();

    @Override
    public String getTestName() {
        return testName.get();
    }

    @BeforeMethod(alwaysRun = true)
    public void BeforeMethod(Method method, Object[] testData){
        testName.set(testData[0].toString());
    }
    @Test (dataProvider = "testData")
    @Description("Hi")
    public void myTest(String value){
        Assert.assertNotNull(value);
        System.out.println(String.format("Test Instance Name: %s", Reporter.getCurrentTestResult().getTestName()));

    }


    @DataProvider(name = "testData")
    public Iterator<Object[]> getTestAPICases() {
        List<Object[]> testList=new ArrayList<Object[]>();

        testList.add(new Object[]{"testOne"});
        testList.add(new Object[]{"testTwo"});
        testList.add(new Object[]{"testThree"});
        return testList.iterator();
    }
}

Ожидаемое: testOne testTwo testThree

Фактический: MyTest MyTest MyTest

1 Ответ

0 голосов
/ 24 июня 2019

попробуй использовать

       AllureLifecycle lifecycle = Allure.getLifecycle();
//change test name to "CHANGED_NAME"
       lifecycle.updateTestCase(testResult -> testResult.setName("CHANGED_NAME"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...