集成测试"模块" appengine app?

时间:2014-07-21 16:39:59

标签: python google-app-engine

我刚刚将我们的应用重构为不同的模块。

我们还有测试的集成测试。 其中一个测试工作之前,但目前中断,因为我们的测试只在每个模块运行。该测试实际上测试了模块之间的互操作性。

如何编写集成测试,而无需启动开发服务器?

我正在使用nose-gae,它并不真正了解模块。

一个wokaround,将所有模块代码符号链接到一个单片应用程序,并测试.. hopwever然后我将不会测试dispatch.yaml和模块中完成的代码分离。

1 个答案:

答案 0 :(得分:0)

我目前所拥有的是每个模块的集成测试,并且模块之间没有集成测试,如果你有明确分开的模块,那么它就是一个大问题。

然而,其中一个问题是queue.yaml,index.yaml(仅在应用程序级别定义)和app.yaml在模块级别上:

/app
  - index.yaml
  - queue.yaml
  /module1
    - app.yaml

测试在module1目录中运行。 这导致我的模块测试失败并出现错误“UnkownQueueError”,因为它找不到queue.yaml。我通过在testbed存根中添加一个参数来解决这个问题:

def reset_gae_stub(self):
    self.testbed = testbed.Testbed()
    self.testbed.activate()
    self.testbed.init_taskqueue_stub(root_path = "../../")

root_path 参数告诉taskqueue存根在哪里找到queue.yaml,这解决了我的问题。