我无法通过阅读sdk的来源立即确定这是否可行。
但是,有没有办法获得dev_appserver从app.yaml加载的应用程序的wsgi版本?
我非常希望有像
这样的功能def app_from_yaml(path_to_yaml):
...
如果存在这种情况,我实际上可以为blobstore逻辑编写自动化测试,而不必再手动执行废话。任何想法?
答案 0 :(得分:1)
我不是100%肯定你在问什么,但答案可能在于google.appengine.ext.webapp.util.run_wsgi_app
。
就blobstore本身而言,已经有google.appengine.api.blobstore.blobstore_stub
可以用来测试Blobstore(虽然我真的不明白你的上下文中“手动”的含义,所以也许这没有帮助)
答案 1 :(得分:1)
我不知道任何可以做你想要的解决方案。我强烈怀疑原因是dev_appserver在加载应用程序时做了很多事情,包括解析各种yaml文件,设置路由,存根API(包括App Engine和Python),限制环境模拟appserver等等上。函数app_from_yaml(path_to_yaml)必须执行dev_appserver.py所做的事情。由于dev_appserver.py已经完成,我认为没有人愿意添加另一个实现。
我看到了两种解决问题的方法。
前一个是相当困难的,因为它需要重构当前的事情如何完成,这可能会引入微妙的回归。后者是我们为这种大型测试(实际上是集成测试)做了很多工作。我们使用gaedriver。
在您要测试blobstore的特定情况下(我们也会这样做),我们从测试中启动应用程序,使用某个URL上传blob,然后点击另一个并检查blob是否已正确处理。它不如使用测试平台那么好,但它起作用,相当直接且相当快。