我刚刚通过我的功能测试没有使用我的dev_appserver相同的设置。我目前使用require_indexes运行我的dev_appserver(非rel)。谷歌应用程序引擎要求测试索引
如何强制我的测试床使用相同的设置?
我尝试过使用SetupIndexes
,但它没有“要求”它们在我的index.yaml中定义。我没有正确的设置,因此我可以做任何我想要的查询。
即
clz.testbed = Testbed()
clz.testbed.activate()
clz.testbed.init_memcache_stub()
clz.testbed.init_taskqueue_stub()
clz.testbed.init_urlfetch_stub()
clz.testbed.init_datastore_v3_stub(use_sqlite=True, datastore_file=somepath)
SetupIndexes('','')
model.objects().filter(x=1, y=2.....) #will work regardless of index defined.
但在查询服务器上执行我得到的
NeedIndexError: This query requires a composite index that is not defined. You must update the index.yaml file in your application root. The following index is the minimum index required:
这听起来像你有你的功能测试仪器dev_appserver代码直接设置你的测试环境。是这样吗?如果是这样,是否有一个原因,你不能使用ext.testbed? (我不确定如何根据索引配置获得测试床以引发NeedIndexError,虽然它可以配置为使用特定的数据存储数据文件,所以也许它可以在给定的情况下工作...)另外,通过“objects()”你的意思是ext.db的“all()”方法,还是这是一个不同的数据仓库API? – 2012-07-24 01:33:55
不确定关注?我只是ext测试,但它不需要索引。 – Nix 2012-07-24 01:34:38
所以你使用'ext.testbed',但它会在每个查询中引发'NeedIndexError'?你可以发布一些你的测试设置代码吗? – 2012-07-24 01:37:42