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

Не задаётся пропертя -Dselenide.baseUrl=http://site.com, а через Configuration.baseUrl задаётся

gradle
selenide
Теги: #<Tag:0x00007f7b6497c3b8> #<Tag:0x00007f7b6497c188>

(Roma Marinsky) #1

Выполняю команду: gradle gsmui -Dselenide.baseUrl=http://gsmserver.com
Тесты стартуют на http://localhost:8080/
если в таске gsmui вывести пропертю selenide.baseUrl - то выводится указанная урла
А если уже в BaseTest вывести selenide.baseUrl - то выводится null

Если в абстрактном классе BaseTest(который все классы с тестами наследуют) в методе с аннотацией @Before указать Configuration.baseUrl="http://gsmserver.com"; - то тесты стартуют на соответствующем сайте.

Что я делаю не так?


(Борис Осянин) #2

Поискал в документации, не нашел пока как с помощью проперти вставить baseUrl, разработчик selenide в своих примерах использует Configuration.baseUrl
Я например делаю в своих тестах так:
String projectUrl = System.getProperty(“project_url”);
И дальше уже использую:
open(projectUrl + “/index.php”); например

Можно соответственно сделать: Configuration.baseUrl = System.getProperty(“project_url”);
и использовать.


(asolntsev) #3

Чтобы передать системное свойство снаружи в тест, нужно добавить в build.gradle такую строку:

test {
  systemProperties['selenide.browser'] = System.getenv()['selenide.browser']
}

(или как-то так)


(Борис Осянин) #4

или maven-ом, в строке запуска указывается -Dproject_url=http://url.com test


(Roma Marinsky) #5

Спасибо, вот это меня и инетерсовало, потому что явно системную проперти тесты не видели, а гредл видел - хотя странно это

Завтра уже попробую


(Roma Marinsky) #6

Нет смысла создавать дополнительную пропертю, если есть стандартная baseUrl которая используется по умолчанию в селениде и к ней приставляется всё что есть в других open()`ах

Configuration.baseUrl - так и было у меня всегда, это работало, я это написал изначально.

Суть в том что я изначально не знаю на какой урле запускать тесты, нужно урлу передавать как “параметр” при запуске теста


(Roma Marinsky) #7

Получилось только через такой костыль: systemProperties(‘selenide.baseUrl’: System.getProperty(“url”))

Но вот почему работает через костыль этот, а не по прямому через задание переменной из консоли -Dselenide.baseUrl?


(asolntsev) #8

Ну, это больше вопрос к тому, как работает Gradle.
Предполагаю, не передаётся потому, что -D в консоли относится к самому градлу, а тесты запускаются в отдельной JVM, поэтому у них свой набор system properties. Теоретически это правильно, иначе свойства самого градла могут повлиять на работу тестов. Например, может ведь быть, что градлу выделено мало памяти, а тестам много памяти.


(Roma Marinsky) #9

Тоже так предполагал, видимо всё таки так и есть