我们使用嵌入式 glassfish 3.2-b06 版进行集成测试。
问题是有时调用我们的 Web 服务 (RESTful) 的测试会返回 404 响应,有时会返回 200。
例如:
@Test
public void test() throws Exception {
int code = sendPOST(URL);
Assert.assertEquals(200, code);
}
但是如果我在测试开始时添加 Thread.sleep (1000) - 一切都很好。
@Test
public void test() throws Exception {
Thread.sleep(1000);
int code = sendPOST(URL);
Assert.assertEquals(200, code);
}
我们正在按如下方式部署应用程序:
@BeforeClass
public void init() {
GlassFishProperties glassFishProperties = new GlassFishProperties();
glassfish = GlassFishRuntime.bootstrap().newGlassFish(glassFishProperties);
glassfish.start();
File ear = new File("target/ear.ear");
Deployer deployer = glassfish.getDeployer();
deployer.deploy(ear);
context = new InitialContext();
}
从日志中可以清楚地看出ear 已部署。
有什么问题?
编辑#1
事实证明,当代码更改时,测试通过。但是当我重复测试时,它们失败了。