Java 硒测试只能通过maven启动。开始使用TestNG xml文件时使用NullPointer失败(因为系统变量为';null';)

Java 硒测试只能通过maven启动。开始使用TestNG xml文件时使用NullPointer失败(因为系统变量为';null';),java,maven,nullpointerexception,system-properties,maven-failsafe-plugin,Java,Maven,Nullpointerexception,System Properties,Maven Failsafe Plugin,问题如下——如果我通过maven(从命令提示符或eclipse)启动自动测试,那么它们运行时不会出现问题。如果我尝试通过testng.xml(来自eclipse)启动,那么我的测试会因NullPointerException而失败。基本上这里是我的pom.xml,系统变量为“browser” 所以,测试总是在上面一行的NullPointerException处停止执行。错误是: FAILED: secondTest java.lang.NullPointerException at Dr

问题如下——如果我通过maven(从命令提示符或eclipse)启动自动测试,那么它们运行时不会出现问题。如果我尝试通过testng.xml(来自eclipse)启动,那么我的测试会因NullPointerException而失败。基本上这里是我的pom.xml,系统变量为“browser

所以,测试总是在上面一行的NullPointerException处停止执行。错误是:

FAILED: secondTest
java.lang.NullPointerException
    at DriverPackage.WebDriverThread.<init>(WebDriverThread.java:17)
然后测试也通过Testng.xml运行

================


我的想法是,这不是关于我的代码,而是关于方法。也许有一些事情我不知道,关于如何使用TestNG访问系统变量?我想另外提到的是,我使用的是maven failsafe插件(您可以在pom.xml中看到)。非常感谢您的任何建议。

您几乎没有办法解决这个问题

  • 使用运行确认运行。在vm参数中设置pom中设置的属性,并指定套件文件

  • 在xml中,定义参数,您可以使用侦听器读取这些参数,并设置可以在代码中引用的静态变量

  • 定义一个属性文件,如果system.getProperty(browser)为空,则读取属性文件并从中获取数据

  • private final String browser=System.getProperty("browser").toUpperCase();
    
    FAILED: secondTest
    java.lang.NullPointerException
        at DriverPackage.WebDriverThread.<init>(WebDriverThread.java:17)
    
    private final String browser=("firefox").toUpperCase();