我們使用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