【发布时间】:2016-03-29 11:43:29
【问题描述】:
问题如下 - 如果我通过 maven(从命令提示符或 eclipse)启动我的自动测试,那么它们运行没有问题。如果我尝试通过 testng.xml(来自 eclipse)启动,那么我的测试会因 NullPointerException 而失败。基本上这里是我的 pom.xml 系统变量称为“browser”
<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>
这是我用来检索“browser”变量的代码:
private final String browser=System.getProperty("browser").toUpperCase();
因此,测试总是在上面的行中以 NullPointerException 停止执行。错误是:
FAILED: secondTest
java.lang.NullPointerException
at DriverPackage.WebDriverThread.<init>(WebDriverThread.java:17)
顺便说一句,如果我按以下方式分配 browser 值(就像文本值一样):
private final String browser=("firefox").toUpperCase();
然后测试也通过 Testng.xml 运行。
=================
我的想法是,这与我的代码无关,而与方法有关。也许有些事情我不知道在TestNG的帮助下访问系统变量是什么?我还想提一下的是我正在使用 maven-failsafe-plugin 插件(你可以在 pom.xml 中看到它)。任何建议都非常感谢。
【问题讨论】:
标签: java maven nullpointerexception system-properties maven-failsafe-plugin