【发布时间】:2010-02-28 14:19:04
【问题描述】:
我使用 Google Appengine for Java (GAE/J)。 最重要的是,我使用 Jersey REST 框架。
现在我想运行本地 JUnit 测试。测试
- 设置本地GAE开发环境(http://code.google.com/appengine/docs/java/tools/localunittesting.html),
- 启动嵌入式 Jetty 服务器,
- 然后通过 HTTP 向服务器发出请求并检查响应。
不幸的是,Jersey/Jetty 组合产生了新线程。 GAE 期望只有一个线程运行。 最后,我最终要么在 Jersey-resources 中没有 datstore,要么拥有多个不同的数据存储区。
作为一种解决方法,我只初始化 GAE 本地环境一次,将它放在一个静态变量中,并在 GAE 资源中添加许多检查(这个线程没有开发环境?重用静态的)。 这些检查当然应该只在 JUnit 测试中运行。(我之前问过:“我怎样才能知道代码是否在 JUnit 测试中运行?” - 我不允许直接在这里发布链接:-|)
【问题讨论】:
标签: java google-app-engine junit jersey embedded-jetty