我刚刚将我们的应用重构为不同的模块。
我们还有测试的集成测试。 其中一个测试工作之前,但目前中断,因为我们的测试只在每个模块运行。该测试实际上测试了模块之间的互操作性。
如何编写集成测试,而无需启动开发服务器?
我正在使用nose-gae,它并不真正了解模块。
一个wokaround,将所有模块代码符号链接到一个单片应用程序,并测试.. hopwever然后我将不会测试dispatch.yaml和模块中完成的代码分离。
答案 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,这解决了我的问题。