【发布时间】:2011-09-14 15:23:15
【问题描述】:
我正在开发一个 Django 项目,该项目在设计上非常繁重。对于服务器端代码,我们尝试使用 unittests 来获得不错的测试覆盖率,并在稍高的水平上使用 Django 测试客户端进行测试。我们有一个为 CI 运行的 Hudson/Jenkins 服务器,其设置或多或少类似于this article,为我们提供了测试通过和覆盖率统计信息。
我也想为我们的 javascript 提供类似的东西。我希望能够在单元测试级别进行测试,也可以在集成/验收测试级别进行测试。后者需要一个完整的 DOM JS 环境和一个正在运行的 django 服务器。理想情况下,我想以某种方式使用 Django 测试客户端,这样我就可以按照我习惯用于 Django 测试的方式设置服务器状态。我还想从 CI 服务器运行所有测试,这需要某种无头浏览器环境(服务器是没有桌面环境的 Ubuntu)。
找了一堆东西,但是感觉很多都不能在CI服务器上运行。此外,与 Django 的集成通常不是很好,并且对服务器环境没有很好的测试隔离。最后,理想情况下,我希望能够以相当不错的速度运行,以尽可能快地保持我的测试/代码周期。
是否有框架可以满足我的需求,或者是否有人设法拼凑出一个接近的解决方案?是否有任何既定的最佳实践可以结合 Django 进行良好的 javascript 测试(即我缺少的 django 人有没有推荐的方法)?
【问题讨论】:
-
“拼凑在一起”很适合我。我已经使用 jruby 的 celerity 和zombie.js 来完成您的要求,但从未找到非常令人满意的解决方案。无论如何,总有一些特定于浏览器的东西必须手动测试。
-
这里有同样的问题。我将查看 django-jenkins 中的 javascript 内容,看看它是否可以做一部分。
标签: javascript django testing continuous-integration hudson