Joh*_*lau 4 java google-app-engine junit maven
我有一个 Google App Engine Java 应用程序,它从 SystemProperty.environment.value() 和 SystemProperty 的所有其他静态成员返回 null。我在通过 Maven 运行 JUnit 测试时看到了这一点。
import com.google.appengine.api.utils.SystemProperty;
...
void printProps() {
log.info("props:" + System.getProperties());
log.info("env=" + SystemProperty.environment.value());
log.info("log=" + System.getProperty("java.util.logging.config.file"));
log.info("id=" + SystemProperty.applicationId.get());
log.info("ver=" + SystemProperty.applicationVersion.get());
}
Run Code Online (Sandbox Code Playgroud)
上面唯一返回非 null 的项目是 System.getProperties()。
以下是我的设置的一些细节:
我遇到了同样的问题。我试图在 LocalServiceTestHelper 上调用这些方法,但这些方法没有填充 SystemProperty.applicationId 或 SystemProperty.version
setEnvAppId(java.lang.String envAppId)
setEnvVersionId(java.lang.String envVersionId)
Run Code Online (Sandbox Code Playgroud)
例如
public final LocalServiceTestHelper helper = new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig(), new LocalTaskQueueTestConfig() ).setEnvAppId("JUnitApplicationId").setEnvVersionId("JUnitVersion");
Run Code Online (Sandbox Code Playgroud)
我的解决方案只是在我的 JUnit setUp() 方法中自己填充这些属性:
@Before
public void setUp() throws Exception {
SystemProperty.version.set("JUnitVersion");
SystemProperty.applicationId.set("JUnitApplicationId");
SystemProperty.applicationVersion.set("JUnitApplicationVersion");
SystemProperty.environment.set( SystemProperty.Environment.Value.Development );
helper.setUp();
datastore = DatastoreServiceFactory.getDatastoreService();
queue = QueueFactory.getDefaultQueue();
}
Run Code Online (Sandbox Code Playgroud)
请注意,SystemProperty.Environment 的唯一有效值是静态最终值 Production 和 Development。
| 归档时间: |
|
| 查看次数: |
1357 次 |
| 最近记录: |