django项目中的Java语言测试,具有CI和覆盖率

问题描述

|| 我正在研究一个Django项目,该项目在设计上是JavaScript繁重的。对于服务器端代码,我们尝试使用unittests获得不错的测试覆盖率,而在更高级别上,则使用Django testclient进行测试。我们有一个运行于CI的Hudson / Jenkins服务器,其内容大致按照本文的内容进行设置,从而为我们提供了测试通过率和覆盖率统计信息。 我也想为我们的javascript做些类似的事情。我希望能够在单元测试级别上进行测试,但也可以在集成/验收测试级别上进行测试。后者将需要完整的DOM JS环境和正在运行的django服务器。理想情况下,我想以某种方式使用Django测试客户端,以便以惯用的Django测试方式设置服务器状态。我还想从CI服务器上运行所有测试,这将需要某种无头浏览器环境(服务器是没有桌面环境的Ubuntu)。 我发现了很多东西,但是很多感觉它无法在CI服务器上运行。同样,与Django的集成通常不是很好,并且不能对服务器环境进行良好的测试隔离。最后,理想情况下,我希望可以以良好的速度运行某些东西,以使我的测试/代码周期尽可能快。 是否有可以满足我需求的框架,或者有人设法拼凑出一个非常接近的解决方案?并结合使用Django进行良好的javascript测试,是否有通常建立的最佳实践(即,我缺少django专家推荐的方法)吗?     

解决方法

        HtmlUNIT看起来可以满足您的某些需求(即支持JavaScript的无头浏览器)。可以很容易地将它与\'runserver \'样式管理命令绑定在一起,该命令还会在退出时转储覆盖范围。 http://htmlunit.sourceforge.net/     ,        您可能想尝试Ghost.py的Phantom.JS的Python实现。我为即将到来的LiveServerTestCase构建了django的扩展。 它依赖于PyQt4,因此您必须将其复制到项目的virtualenv中。