2

「プレイ テスト」を実行するときに、テスト ケースで使用されるシステム プロパティを渡す方法はありますか?

String testDB = System.getProperties().getProperty("testDB");

Map<String, String> conf = new HashMap<String, String>();
if (testDB.equals("localdb")) {
    conf.put("db.default.driver", "org.postgresql.Driver");
    conf.put("db.default.url", "postgres://postgres:postgres@localhost/db");
} else if (testDB.equals("memorydb")) {
    conf.put("db.default.driver", "org.h2.Driver");
    conf.put("db.default.url", "jdbc:h2:mem:play-test");
} else {
    conf.put("db.default.driver", "org.postgresql.Driver");
    conf.put("db.default.url", "postgres://postgres:postgres@localhost/db");
}

running(fakeApplication(conf), new Runnable() {
    public void run() {
    int preRowCount = Info.find.findRowCount();
        Info info = new Info("key");
        info.save();
        assertThat(Info.find.findRowCount()).isEqualTo(preRowCount+1);
        info.delete();
    }
});

「play test -DtestDB=localdb」を試しましたが、testDB で null 値が得られました。

4

1 に答える 1

6

1.2.4

試すplay run -DtestDB=localdb --%test

http://www.playframework.org/documentation/1.2.4/idsの下部に、play testと同等であると記載されていることがわかりましたplay run --%test

2.0

試すplay -DtestDB=localdb test

システムプロパティは、コマンドの前にある必要があります。

于 2012-06-14T18:24:56.397 に答える