python - 如何使用 Google App Engine 设置 TDD 开发流程?

标签 python unit-testing google-app-engine tdd

我主要是一名 Ruby 专家,但最近我一直在从事大量 Python 方面的工作,尤其是 App Engine 代码。在 Ruby 中,我会在我的开发过程中使用自动持续集成(autotest)、代码覆盖工具(rcov)、静态分析(reek)和变异测试(heckle),但我不确定如何最好地为 App Engine 环境设置类似的开发过程。我也对 RSpec 的类似物感兴趣和 Cucumber适用于可在 App Engine 中运行的 Python。

最佳答案

您不会总能在 Python 中找到与 Ruby 测试工具一一对应的工具,但在 Python 中有一些很棒的测试工具。我发现一些有用的工具包括:

  • unittest - Python 标准库中包含的 xUnit 工具。它包括单元测试的所有基础知识。
  • doctest - 标准库的一个很棒的部分,它允许你在函数、类、模块、方法的文档字符串中编写测试。它非常擅长传达预期的 API 用法。 Ian Bicking建议使用 doctest 进行行为驱动开发。 Doctest 非常适合 Sphinx文档系统(您可以确保每次构建文档时文档中的所有示例都通过)。
  • nosepy.test被视为 unittest 的下一代版本。他们可以运行所有现有的单元测试用例,但允许更简单的、非基于类的单元测试。 py.test 还允许分布式执行。
  • mock是一个很好的模拟行为库。
  • tdaemon监视一个目录以更新您的代码,并将重新执行您的测试套件。 (我的 personal branch 包含一些未合并的改进)。
  • Buildbot , Bitten ,甚至 Hudson所有这些都可以作为 Python 代码的成熟的持续集成服务器。
  • coverage.py计算代码的代码覆盖率。
  • pylint将为您的代码提供类似 lint 的分析,确保它遵循常见的编码约定并且没有任何常见的错误。还有一个“更轻”的分析工具,PyFlakes .
  • 有许多 HTTP/浏览器测试工具在 Python 中运行良好,包括 Twill , Selenium , 和 Windmill .

如果您在 App Engine 上使用 Django,它包括 several extensions单元测试允许您模拟 HTTP 客户端和数据库持久性。

还有很多我没有使用过的其他工具(例如 PySpecBehaviour )也可能有用。我没有在 Python 中看到任何突变测试工具,但我敢打赌那里有一个(我很想知道它是什么)。

测试愉快!

关于python - 如何使用 Google App Engine 设置 TDD 开发流程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1591875/

相关文章:

python - @app 和 Flask 中的 app 的区别

python - 根据间隔选择随机行

php - 为什么数组会保留重复数据

javascript - 按类不返回元素的 Angular Fixture DebugElement 查询

python - AppEngine 中的非数据存储类型列表?

python - AWS Lambda 压缩文件命令

javascript - 如何在 Jest 测试中模拟 babel 插件?

java - 我应该使用哪个 Eclipse 版本进行 Google GWT 和 Google App Engine 开发?

java - 我是否需要在使用它的每个微服务(模块)中或仅在根应用程序中定义数据存储索引?

python - 装饰器可以做到这一点吗?