Достаем Properties из Maven profiles в Java код.
Создаем Maven profile
Profile используется для сборки проекта с разными настройками. Напишем профайлы, которые помогу нам запускать тесты в разных браузерах. Добавим этот код в pom.xml.
<profiles>
<profile>
<id>Chrome</id>
<properties>
<browser>chrome</browser>
</properties>
</profile>
</profiles>Рассмотрим профйл:
- <profiles> - между этими тегами будут храниться все наши профайлы.
- <profile> - сам профайл.
- <id> - имя профайла.
- <properties> - значения которые хранит профайл.
- <browser> - наше значенгие, которое мы сами создаем.
На примере этого профайла можно создать для других браузеров: IE, FireFox, Opera и т.д
Maven plugin
<!--Plugin set custom properties-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<configuration>
<systemPropertyVariables>
<browser>${browser}</browser>
<buildDirectory>${project.build.directory}</buildDirectory>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>Этот плагин поможет вытащить значение properties из профайла в Java код.
<browser>${browser}</browser>
Эта строчка позволит обратиться из кода к данному значению.
Get properties from pom.xml
private void selectBrowser() {
Configuration.browser = System.getProperty("browser");
}Рассмотрим код:
- System.getProperty(“browser”); - вернет нам chrome.
Теперь есть только один метод, вместо selectChrome, selectIE и т.д, который выбирает браузер в зависимости от maven profile.
Default properties.
Если не выбрать ни один из профилей, тесты не запустятся, так как не получится создать WebDriver.
Решение:
<!--Default properties-->
<properties>
<browser>firefox</browser>
</properties>Теперь если не будет выбран ни один профайл, тесты запустятся на FireFox.
Исходный код можно найти тут: GitHub project: WEB-QA.