Dragonx 建议使用 old_dev_appserver.py 对我来说效果很好。更具体地说,这是我在 MacOS X 10.9.3 上使用 App Engine 1.9.6、coverage 3.7.1 和 Python 2.7 所做的:
MyAppDir是包含 app.yaml 的目录。
--omit是可选的。你很可能不需要它。我已经将我的测试代码移出了 MyAppDir,因为我不想让 appcfg.py 上传它。
--branch是可选的,但很有用。
old_dev_appserver.py(目前)随 App Engine 一起提供。无需下载或安装副本。
# One time:
sudo pip install coverage
# Start the server:
APP=MyAppDir
coverage run \
--source=$APP \
--omit='$APP/exclude/*' \
--branch \
/usr/local/bin/old_dev_appserver.py \
$APP
# Run your tests in a separate tab. In my case I use this command:
webdriver/system_tests.py
# Kill the server with Control-C once the tests are finished.
# Display a quick text summary:
coverage report -m
# Generate and open an HTML report linking to line by line coverage:
coverage html
open htmlcov/index.html
我相对简单的应用程序(电子邮件、全文搜索、ndb、urlfetch、webapp2)不需要任何更改即可与 old_dev_appserver 一起使用。我确实删除了传递给 dev_appserver 的标志。没有他们我也能活下去。--port 如果你需要,它和其他一些一样支持。
如果您希望在 dev_appserver.py 的未来版本中看到代码覆盖支持,请投票添加对代码覆盖测试和一些文档的支持,以前为https://code.google.com/p/googleappengine/issues/detail?id =4936。