0

いくつかの Selenium テストを Play のテスト フレームワークに統合し始めました。に対して多くの特別な構成設定を定義し、次を使用してFakeApplication作成するクラスがあります。FakeApplication

public abstract class FakeApplicationTest {
    public static FakeApplication createFakeApp() {
        // grab the main application.conf file that is used to start up the Play application
        Config config = ConfigFactory.parseFile(new File("conf/application.conf"));

        // resolve all variables within this config file with other variables within itself
        config = ConfigFactory.load(config);

        // create a Configuration object out of this and then turn it into a Map to be modified
        Configuration configuration = new Configuration(config);
        Map<String, Object> fakeApplicationConf = Maps.newHashMap(configuration.asMap());

        ...
        // CUSTOM CONFIG THINGS HERE
        ...

        return Helpers.fakeApplication(fakeApplicationConf);
    }
}

私ができるようにしたいのは、 this を使用し、 (JUnit 4 を使用して) メソッドFakeApplicationで開始し、Selenium テストを実行するために必要な に既に実行されているものを渡すことです。@BeforeFakeApplicationTestServer

public class Checkout extends FluentTest {
    public WebDriver webDriver = new FirefoxDriver();
    ...
    public FakeApplication app;

    @Before
    public void beforeTest() {
        app = FakeApplicationTest.createFakeApp();
        Helpers.start(app);
        FakeApplicationTest.createCleanDb();
        ...
    }

    @Test
    public void testReviewPage()
        running(testServer(3333, app), webDriver, browser -> {
            ...
        }
    }
}

ただし、これを行うと発生するように見えるのは、既存の実行中FakeApplicationが無視/破棄され、カスタムの fakeApplicationConf マップで設定されていないFakeApplication新しいものが作成されて開始されることです...または、アプリを停止して再起動しますが、デフォルトのapplication.confのみを使用するように戻します。

これがなぜなのかについてのアイデアはありますか?または、どうにかしてこれを別の方法で達成できるとしたら?

4

0 に答える 0