Выполняю команду: gradle gsmui -Dselenide.baseUrl=http://gsmserver.com
Тесты стартуют на http://localhost:8080/
если в таске gsmui вывести пропертю selenide.baseUrl - то выводится указанная урла
А если уже в BaseTest вывести selenide.baseUrl - то выводится null
Если в абстрактном классе BaseTest(который все классы с тестами наследуют) в методе с аннотацией @Before указать Configuration.baseUrl="http://gsmserver.com"; - то тесты стартуют на соответствующем сайте.
Поискал в документации, не нашел пока как с помощью проперти вставить baseUrl, разработчик selenide в своих примерах использует Configuration.baseUrl
Я например делаю в своих тестах так:
String projectUrl = System.getProperty(“project_url”);
И дальше уже использую:
open(projectUrl + “/index.php”); например
Можно соответственно сделать: Configuration.baseUrl = System.getProperty(“project_url”);
и использовать.
Нет смысла создавать дополнительную пропертю, если есть стандартная baseUrl которая используется по умолчанию в селениде и к ней приставляется всё что есть в других open()`ах
Configuration.baseUrl - так и было у меня всегда, это работало, я это написал изначально.
Суть в том что я изначально не знаю на какой урле запускать тесты, нужно урлу передавать как “параметр” при запуске теста
Ну, это больше вопрос к тому, как работает Gradle.
Предполагаю, не передаётся потому, что -D в консоли относится к самому градлу, а тесты запускаются в отдельной JVM, поэтому у них свой набор system properties. Теоретически это правильно, иначе свойства самого градла могут повлиять на работу тестов. Например, может ведь быть, что градлу выделено мало памяти, а тестам много памяти.