Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Создание тестовых данных до начала параметризированного теста


(heartwilltell) #1

есть такой тест:

@Story(Application.CheckLanding.CheckLandingsPages.class)
@UseTestDataFrom("src/main/java/Project/pages/LandingPages/resources/data.csv")
@RunWith(ThucydidesParameterizedRunner.class)
@WithTag("Functional:SiteMapTest")
public class SiteMapTest {

    @BeforeClass
    public static void setData() {
        Sitemap.getAllLinksFromMaps();
        Sitemap.setToCsv();
    }

    @Managed(uniqueSession = false)
    public WebDriver webdriver;

    @ManagedPages(defaultUrl = "http://site.com")
    public Pages pages;

    @Steps
    SomeSteps someSteps;

    public String url;

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public SiteMapTest() {
    }

    @Qualifier
    public String getQualifier() {
        return url;
    }

    @Test
    public void check_page_for_js_errors() {
        someSteps.openPage(getUrl());
        someSteps.doSomething();
    }
}

В @BeforeClass я пытаюсь вызвать методы которые создадут мне csv файл из которого будет брать данные тест. Если файл уже есть тейст запускается ок, если его нету то тест при запуске ругается что нету файла с которого читать дату для теста.
Загвоздка в том, что мне данные постоянно меняются и при запуске теста нужно каждый раз запускать методы которые будут эти данные собирать.
Вопрос - как сделать так что бы эти методы вызывались до запуска самого теста?


(Sergey Korol) #2

DataProvider вам в помощь.


(heartwilltell) #3

Это же вроде TestNGшная радость. Есть аналог под JUnit?


(Sergey Korol) #4

GrepCode говорит, что есть у thucydides DataProvider. У JUnit тоже.


(heartwilltell) #5

Буду смотреть, спасибо