请告诉我有什么问题?
测试因以下错误而崩溃:failures:java.lang.nullpointerexception:entry:url=null中的null值
pom.xml文件:
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.21.0</version>
<configuration>
<systemPropertyVariables>
<db.url>https://dev.site.com/</db.url>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
</profile>
basetest.java版本:
@BeforeClass (alwaysRun = true)
public void setUp() {
Logger.getLogger("com.dataart.demo.java.logging.SomeClass").log(Level.INFO,System.getProperty("db.url"));
if (System.getProperty("os.name").toLowerCase().contains("win")) {
driverPath = "src/test/resources/chromedriver86.exe";
}
else {
driverPath = "src/test/resources/chromedriverlinux86";
}
System.setProperty("webdriver.chrome.driver", driverPath);
LoggingPreferences logs = new LoggingPreferences();
logs.enable(LogType.BROWSER, Level.SEVERE);
ChromeOptions options = new ChromeOptions();
HashMap<String, Object> chromePref = new HashMap<>();
chromePref.put("profile.default_content_settings.popups", 0);
chromePref.put("download.default_directory", System.getProperty("user.dir"));
options.setExperimentalOption("prefs", chromePref);
options.addArguments("headless");
options.addArguments("window-size=1800,1000");
options.setCapability(CapabilityType.LOGGING_PREFS, logs);
options.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.IGNORE);
driver = new ChromeDriver(options);
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(10L, SECONDS);
driver.get(System.getProperty("db.url")); // line 71
}
失败:java.lang.nullpointerexception:条目中的null值:url=null
http://joxi.ru/d2pqdr9uj8pbla
2条答案
按热度按时间eiee3dmh1#
从maven的Angular 来看,我认为您应该查看下面的片段(这是从前面的答案派生出来的):
surefire/failsafe配置进入
pluginManagement
. 如果需要重写一个模块的systemproperty,可以这样做。如果需要,您还可以合并/替换父配置(请参阅此q/a:append或merge default maven plugin configuration)。两者的配置都将注入一个系统属性
db.url
有价值的${test.db.url}
所述属性的值在配置文件内配置。这旨在避免重复surefire/failsafe配置,特别是在
db.url
不是需要配置的单个属性。您还可以使用maven resources插件从过滤后的文件中读取此内容(也可以避免使用全局共享上下文,例如:
System.getProperty
). 我个人认为这是最好的(我更喜欢配置文件而不是系统属性,前者更容易共享)。xurqigkl2#
如果您启动一个单独的测试,您的配置应该可以工作((ide内部)
但是考试会失败的,你呢
mvn install
,mvn test
, ...失败:java.lang.nullpointerexception:条目中的null值:url=null
然后还应该配置
surefire-plugin
```dev
true