我们使用appengine-web.xml文件将全局配置数据存储为系统属性(例如我们需要与之通信的各种开发服务器的位置)。使用LocalServiceTestHelper类运行单元测试时,这些属性不可用。似乎有一些方法可以在每个单元测试的设置期间设置期望的系统属性(参见例如http://code.google.com/appengine/docs/java/tools/localunittesting/javadoc/com/google/appengine/tools/development/testing/LocalServiceTestHelper.html#setEnvAttributes(java.util.Map)),但是到目前为止我们没有实现这一点。App Engine Java单元测试环境设置
如果有人能够提供一个简单的例子来说明如何在应用程序引擎单元测试中设置系统属性,那将会很棒吗?
编辑:这里是一个小例子,演示了什么,我试图做
import java.util.HashMap;
import java.util.Map;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.google.appengine.tools.development.testing.LocalDatastoreServiceTestConfig;
import com.google.appengine.tools.development.testing.LocalServiceTestHelper;
public class MyTest {
private final LocalServiceTestHelper helper = new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig());
@Before
public void setUp() {
Map<String, Object> values = new HashMap<String, Object>();
values.put("de.foo.bar", "baz");
helper.setEnvAttributes(values);
helper.setUp();
}
@After
public void tearDown() {
helper.tearDown();
}
@Test
public void foo() {
System.out.println("my env variable: " + System.getenv("de.foo.bar"));
}
}
这会打印出 “我的环境变量:空”
您对项目环境使用什么?行家? IDE?其他? –
当你说你未能实现这个时,你是什么意思?你尝试了什么,发生了什么? –
@splix:我使用Eclipse 3.7和标准的App Engine安装程序 – user857661