0

テストの自動化のために、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);
}

ここで問題を解決するのを手伝ってくれる人はいますか?

4

1 に答える 1

1

P_1_LoginPageあなたのコードは、プロパティへのアクセスに使用される静的フィールドや、コンテナー外の新しい演算子を使用した作成など、いくつかの Spring ガイドラインに違反しています。しかし、NullPointer の主な問題は、Spring コンテキストがまだ初期化されていないことです@BeforeClass(メソッドも静的にする必要があります。そうしないと、例外が発生します)。に置き換え@BeforeClassます@Before

于 2013-01-09T07:44:17.317 に答える