【发布时间】:2011-01-14 15:20:10
【问题描述】:
所以,我有一个 GWT 客户端,它与 Python Google App Engine 服务器交互。客户端向服务器资源发出请求,服务器以 JSON 格式响应。这很简单,没有 RPC 或类似的东西。我正在使用 Eclipse 开发我的 GWT 代码。
我有想要运行的 GWTTestCase 测试。不幸的是,我不知道如何真正让谷歌应用引擎服务器在每个测试中运行。我有一个好主意,尝试从命令行启动应用程序引擎服务器,但这当然行不通,因为 Process 和 ProcessBuilder 不是 GWT 开发工具包实际包含的类。
package com.google.gwt.sample.quizzer.client;
import java.io.IOException;
import java.lang.ProcessBuilder;
import java.lang.Process;
import com.google.gwt.junit.client.GWTTestCase;
public class QuizzerTest extends GWTTestCase {
public String getModuleName() {
return "com.google.gwt.sample.quizzer.Quizzer";
}
public void gwtSetUp(){
ProcessBuilder pb = new ProcessBuilder("dev_appserver.py",
"--clear_datastore",
"--port=9000",
"server_python");
try {
p = pb.start();
} catch (IOException e) {
System.out.println("Something happened when starting the app server!");
}
public void gwtTearDown(){ p.destroy(); }
public void testSimple() {
//NOTE: do some actual network testing from the GWT client to GAE here
assertTrue(true);}
}
编译此文件时出现以下错误:
[ERROR] Line 21: No source code is available for type java.lang.Process; did you forget to inherit a required module?
[ERROR] Line 30: No source code is available for type java.lang.ProcessBuilder; did you forget to inherit a required module?
正如您在下面看到的,我基本上希望每次测试都是这样:
- 启动我的 GAE 服务器的数据存储空实例
- 针对此服务器实例跨网络运行测试。
- 停止服务器
- 当然,将测试结果报告给我。
有没有人有这样做的好方法?欢迎部分解决方案!黑客也很好。也许通过编辑“.launch”配置文件可以在这个问题上取得一些进展?唯一重要的标准是我想针对我的实际 GAE Python 服务器对我的 GWT 代码部分进行“单元测试”。
谢谢。
【问题讨论】:
-
我很困惑。您是否使用 GWT 用 Java 编写前端,而使用 Python 编写后端?
-
是的,就是这样。
-
我应该是明确的。是的,情况正是如此。前端(客户端)用 GWT 编写,后端(服务器)用 Python GAE 编写。
标签: unit-testing google-app-engine gwt junit