有没有办法用google.appengine.ext.testbed获得本地单元测试,以便像dev服务器那样自动生成索引?我试过以下似乎不起作用的方法:

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=Truerequire_indexes=False初始化数据存储库v3_存根。似乎什么都没用。

最佳答案

必须使用init_datastore_v3_stub选项调用root_path方法,如下所示:

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文件的目录的路径。
如果您将NeedIndexError选项设置为require_indexes,则会引发True

关于python - 使用App Engine单元测试自动生成索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24702001/

10-09 19:30