【问题标题】:How to run Python code coverage tests for Google App Engine in Eclipse or from command line如何在 Eclipse 中或从命令行为 Google App Engine 运行 Python 代码覆盖率测试
【发布时间】:2011-04-27 07:15:18
【问题描述】:

我想在 Eclipse 中或从命令行为 Google App Engine 运行 Python 代码覆盖率测试。

通常 Python 程序需要这样的命令行:

coverage run program arguments

我尝试为 Google App Engine 运行它,但没有从以下命令行收集数据:

coverage run [path_to_google_app_engine]/dev_appserver.py [application_options] application_root

终止服务器后它不会产生 .coverage - 你知道什么是错的吗? 如何停止服务器并获取 .coverage 数据?

【问题讨论】:

  • 你在哪里/如何安装覆盖?位置问题会导致沙盒代码。

标签: python unit-testing google-app-engine code-coverage


【解决方案1】:

我对 GAE 了解不多,但对 coverage.py 了解很多。如果 dev_appserver.py 命令在同一进程中运行服务器,那么您拥有的命令应该可以工作。如果服务器实际上在子进程中运行,请参阅 coverage.py 文档中的 Measuring subprocesses 了解如何测量子进程。

【讨论】:

  • 不确定 95%,但看起来 dev_appserver.py 没有生成进程,而是永远运行 http 服务器并等待键盘中断。如果coverage.py 在KeyboardInterrupt 之后保存结果,它应该可以工作——你知道coverage.py 在KeyboardInterrupt 上会做什么吗?另一个问题可能是 GAE 块文件写入和结果应该重定向到内存流并保存在数据库中或显示在页面上 - 是否可以在不打补丁的情况下重定向此类输出?
  • 这不适用于当前版本的 GAE。他们在为 GAE 运行的代码中进行了一些沙盒处理(例如,禁用二进制模块的加载,删除服务器上不支持的模块和方法)。 coverage 现在为所有除了实际应用程序代码生成数据! stackoverflow.com/questions/16785929
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-20
  • 2020-08-28
  • 1970-01-01
  • 1970-01-01
  • 2014-08-28
  • 2019-07-10
相关资源
最近更新 更多