Проблема заключается в следующем: если я запускаю свои автозагрузки через maven (из командной строки OR eclipse), то они запускаются без проблем. Если я попытаюсь запустить через testng.xml (из eclipse), тогда мои тесты завершится с NullPointerException. В основном здесь мой pom.xml с системной переменной называется «браузер»Тест на селен можно запускать только через maven. Сбой с NullPointer при запуске с использованием XML-файла TestNG (поскольку системная переменная равна «null»)
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- Dependency versions -->
<selenium.version>LATEST</selenium.version>
<!-- Configurable variables -->
<threads>3</threads>
<browser>chrome</browser>
<overwrite.binaries>false</overwrite.binaries>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<parallel>methods</parallel>
<threadCount>${threads}</threadCount>
<systemPropertyVariables>
<browser>${browser}</browser>
<!--Set properties passed in by the driverbinary downloader-->
<webdriver.chrome.driver>${webdriver.chrome.driver}</webdriver.chrome.driver>
<webdriver.ie.driver>${webdriver.ie.driver}</webdriver.ie.driver>
<webdriver.opera.driver>${webdriver.opera.driver}</webdriver.opera.driver>
</systemPropertyVariables>
и вот код я использую, чтобы получить «браузер» переменная:
private final String browser=System.getProperty("browser").toUpperCase();
Таким образом, тест всегда останавливает выполнение с помощью исключения NullPointerException в строке выше. Ошибка:
FAILED: secondTest
java.lang.NullPointerException
at DriverPackage.WebDriverThread.<init>(WebDriverThread.java:17)
BTW, если я назначу браузер значение следующим образом (так же, как текстовое значение):
private final String browser=("firefox").toUpperCase();
затем тест проходит через Testng.xml тоже.
================
Мое мышление, что это не мой код, но скорее о подходе. Возможно, есть некоторые вещи, о которых я не знаю, какая проблема связана с системными переменными с помощью TestNG? Я хотел бы дополнительно упомянуть, что я использую плагин maven-failafe-plugin (вы можете увидеть его в pom.xml). Любые предложения приветствуются.