有没有一种方法可以使用google.appengine.ext.testbed获取本地单元测试,以与开发服务器一样自动生成索引?我尝试了以下似乎无效的方法:
from google.appengine.tools import dev_appserver_index
def setUp(self):
self.testbed = testbed.Testbed()
self.testbed.activate()
self.testbed.init_datastore_v3_stub(require_indexes=True)
dev_appserver_index.SetupIndexes(None, root_directory)
dev_appserver_index.IndexYamlUpdater(root_directory).UpdateIndexYaml()
我尝试将dev_appserver_index位添加到setUp()和tearDown()中.我尝试使用require_indexes = True和require_indexes = False初始化datastore_v3_stub.似乎没有任何作用.
解决方法:
您必须使用root_path选项调用init_datastore_v3_stub方法,如下所示:
def setUp(self):
self.testbed = testbed.Testbed()
self.testbed.activate()
self.testbed.init_datastore_v3_stub(root_path="your-root-path")
root_path是存在app.yaml文件的目录的路径.
如果将require_indexes选项设置为True,则会引发NeedIndexError.