【发布时间】:2015-02-26 08:30:31
【问题描述】:
背景
我们正在使用来自 Jersey 的 Spring/Hibernate(基于 JPA)/Restful API 构建产品。在项目构建阶段,我们正在运行集成测试以确保所有 Restful API 的行为都符合预期。
最近,我们已迁移到使用两个实体管理器,用于与此合并的另一个子产品。事情从那里开始变得混乱
我们有后台线程,它们异步执行很少的操作。最初,我们面临这些后台作业的问题,以获取它们各自的实体管理器工厂。但我们使用 OpenEntityManagerInViewFilter 在一定程度上解决了这个问题。
作为集成测试运行的一部分,我们将启动 Jetty 服务器并在那里部署应用程序进行测试。
当前问题场景
当运行这些测试涉及单独的后台处理时,它们运行良好。
由于我们进行了多项测试,启动和停止 Jetty 服务器会导致测试运行时间过长。
因此,我们将所有测试分组到一个测试套件中,并在surefire-plugin 中配置了这个套件。
单独运行的测试开始挂在套件内运行。 测试套件设置如下。
@BeforeClass
public static void setUp()
{
// Startup of jetty server happens here
}
@AfterClass
public static void tearDown()
{
// Stopping of jetty server happens here
}
在个别测试中,我们将在@BeforeClass 中完成后台进程,并在@Afterclass 方法中执行数据清理活动。
我对测试如何正常工作感到有点奇怪,因为个人在测试套件中运行时开始引起问题
任何配置/想法将不胜感激。
【问题讨论】:
-
你的测试是否命中了码头服务器 - 任何日志?
-
是的。他们正确地访问了服务器...信息:根 WebApplicationContext:初始化在 41869 毫秒内完成 2015 年 2 月 26 日下午 2:20:30 org.glassfish.jersey.server.ApplicationHandler 初始化信息:启动 Jersey 应用程序,版本 Jersey:2.5。 1 2014-01-02 13:43:00...
标签: java spring hibernate jpa junit