gpt4 book ai didi

java - 无法使用 Spring 属性持有者读取属性

转载 作者:行者123 更新时间:2023-12-01 14:57:03 25 4
gpt4 key购买 nike

我尝试在我的 maven-java 项目中使用属性文件进行测试自动化。

这是 context.xml 文件

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-2.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/context ">

<util:properties id="properties" location="classpath:test-context.properties"/>

<context:property-placeholder properties-ref="properties" ignore-unresolvable="false"/>


<bean id="settings" class="util.TestSettings">
<property name="properties" ref="properties"/>
</bean>

这些是我的 java 类。

import java.util.Properties;

public class TestSettings {

private static Properties properties;

public static String getProperty(String key) {
return properties.getProperty(key);
}

public void setProperties(Properties properties) {
TestSettings.properties = properties;
}
}
<小时/>
@ContextConfiguration(locations = "classpath:test-context.xml")
public class P_1_LoginPage extends AbstractTestNGSpringContextTests {

private P_1_LoginPage p1LoginPage;
private WebDriver driver;

public P_1_LoginPage(WebDriver driver) {

this.driver = driver;

driver.get(TestSettings.getProperty("base.url"));

}

@BeforeClass(alwaysRun = true)
public void BeforeTest() throws MalformedURLException {

DesiredCapabilities capability = DesiredCapabilities.firefox();
driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability);
p1LoginPage = new P_1_LoginPage(driver);

}

public void assertThere() {

//assert here
}
<小时/>

更新

这是我的 context.property 文件。

base.url=http://uname:pword@test.mysite.com.au/sdfdf
email.Queue.url=http://uname:pword@test.mysite.com.au/admin/admin/show_msgs

当我尝试运行测试用例时,它在这里给出了空指针异常。

public static String getProperty(String key) {
return properties.getProperty(key);
}

有人可以帮我解决这里的问题吗?

最佳答案

您的代码违反了一些 Spring 准则,例如用于访问属性的静态字段,或使用容器外部的 new 运算符创建 P_1_LoginPage 。但 NullPointer 的主要问题是,@BeforeClass 中 Spring 上下文尚未初始化(方法也应该是静态的,否则会导致异常)。将 @BeforeClass 替换为 @Before

关于java - 无法使用 Spring 属性持有者读取属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14230126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com