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

Возможно ли передать defaultUrl из проперти-файла?


(Natalja Librante Lace) #1

Добрый день!

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

Я нашла как в Thucydides переназначать defaultUrl через командную строку, но можно ли это делать через config.propierties файл?
Сейчас я пытаюсь сделать по примеру, приведенному в “Базе знаний”

@RunWith(ThucydidesRunner.class)
public class GenericWebPage_Test {

        public Properties props;
        {
            props = PropertiesReader.readProperties("resources/config.properties");  
        }


    @Managed(uniqueSession = true)
    public WebDriver driver;

      @ManagedPages
         (defaultUrl = props.getProperty("BaseURL"))
         public Pages pages;

Такой вариант не компилится, на строчку getProperty(“BaseURL”)) я получаю “propierties attribute value must be constant”
Гугл на это говорит, что “Annotation element values must be resolvable by the compiler at compile time”, т.е. что я не могу передавать проперти (даже final static) в аннотацию.

Так ли это? И можно ли все-таки в Фукидиде передавать defaultUrl как проперти из файла? И как???


(Sergey Korol) #2

Это не связано с конкретным фреймворком. Это правило Java. Вы не можете передать результат выполнения метода в качестве параметра аннотации. Там всегда должна быть константа.

Лично для себя выносил в проперти доступные URL, потом читал в enum. В случае с Jenkins была еще доп. проверка, не засечена ли env var c URL.

По Thucydides не подскажу. Но если там нет способа задания URL, кроме как через аннотацию, то это печально. Что можно в целом записать, как еще один минус использования готовых решений.