【问题标题】:Make tests use a simulated version of the app engine "High Replication Datastore"?让测试使用应用引擎“High Replication Datastore”的模拟版本?
【发布时间】:2013-03-06 23:47:32
【问题描述】:

根据 App Engine 网站,我们应该将其添加到我们的测试中:

LocalServiceTestHelper datastoreHelper = 
        new LocalServiceTestHelper( new LocalDatastoreServiceTestConfig( )
                                    .setDefaultHighRepJobPolicyUnappliedJobPercentage(100));

但是运行测试它会在控制台中打印:

INFO: Local Datastore initialized: 
Type: Master/Slave
Storage: /Users/celsodantas/code/eclipse-workspace/code/BAM/product/./WEB-INF/appengine-generated/local_db.bin

我的问题是:如何针对模拟的高复制数据存储运行测试?

在 App Engine 迁移到 HRD 之前,我的所有测试都使用主/从运行。我的生产应用程序已经在运行 HRD,但不是我的测试。

有什么想法吗?天呐

【问题讨论】:

  • 它应该可以工作。我假设您在某处有另一个 LocalServiceTestHelper 实例。你能检查一下测试源吗?
  • @TakashiMatsuo 你是对的。我们还在同一个测试中实例化了一个 MemCache 测试助手。在设置中,我们调用:datastoreHelper.setup,然后调用 memcacheHelper.setup,但它失败了。把两者的顺序颠倒一下就可以了。
  • 好吧,让我们来回答一下吧。

标签: unit-testing google-app-engine testing


【解决方案1】:

[更新了一个例子] 它应该工作。我假设您在某处有另一个 LocalServiceTestHelper 实例。 LocalServiceTestHelper的构造函数可以接收多个TestConfigs,所以如果你想拥有多个testConfigs,请尝试如下:

private final LocalServiceTestHelper helper = new LocalServiceTestHelper(
 new LocalMemcacheTestConfig(),
 new LocalDatastoreServiceTestConfig()
   .setDefaultHighRepJobPolicyUnappliedJobPercentage(100));

【讨论】:

  • 所以你不允许在同一个测试中有多个 LocalServiceTestHelper ?
  • 是的,我确实有。我也在实例化一个 memcacheHlper.setup。所以我不能在应用程序中拥有超过 1 个 LocalServiceTestHelper?
猜你喜欢
  • 2013-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多