Testing 在测试中重复使用测试假应用程序?

Testing 在测试中重复使用测试假应用程序?,testing,playframework,Testing,Playframework,是否有任何方法可以阻止actor系统在测试之间关闭和启动? 我不断收到akka例外情况的投诉,抱怨演员系统出现故障。 我可以通过mock/stub来摆脱对假冒应用程序的依赖,但这需要一些工作——希望能够启动一个静态测试应用程序,并在应用程序中运行不同的东西 我有一个像这样糟糕的测试-我能在测试之间以某种方式重新使用正在运行的应用程序吗?它似乎仍然关闭了沿线的某个地方 running(Fixtures.testSvr, HTMLUNIT, browser -> new JavaTestKit

是否有任何方法可以阻止actor系统在测试之间关闭和启动? 我不断收到akka例外情况的投诉,抱怨演员系统出现故障。 我可以通过mock/stub来摆脱对假冒应用程序的依赖,但这需要一些工作——希望能够启动一个静态测试应用程序,并在应用程序中运行不同的东西

我有一个像这样糟糕的测试-我能在测试之间以某种方式重新使用正在运行的应用程序吗?它似乎仍然关闭了沿线的某个地方

running(Fixtures.testSvr, HTMLUNIT, browser -> new JavaTestKit(system) {{
            F.Promise<TestResponseObject> resultPromise = client.makeRequest("request", "parameterObject", system.dispatcher());

            boolean gotUnmarshallingException = false;
            try {
                Await.result(resultPromise.wrapped(), TotesTestFixtures.timeout.duration());
            } catch (Exception e) {
                if ((e instanceof exceptions.UnmarshallingException)) {
                    gotUnmarshallingException = true;
                }
            }

            if(gotUnmarshallingException == false) fail();
        }});

您可以尝试摆脱正在运行的方法,它会在最后停止testserver并自己初始化testserver,但我不知道Akka是否对您可用:

@BeforeClass
public static void start() {
    testServer = testServer(PORT, fakeApplication(inMemoryDatabase()));
    testServer.start();
    // Maybe you dont ned this...
    try {
        testbrowser = new TestBrowser(HTMLUNIT, "http://localhost:" + PORT);
    } catch (Exception e) {
    }     
}

@Test
public void testOne() {
    new JavaTestKit() {
     // (...)
    }   
}

@AfterClass
public static void stop() {        
    testServer.stop();
}

这就是我最后做的。忘了我打开了这个问题。我启动了服务器。相同的差异: