2009-07-10 84 views
8

对于Javascript,存在一些测试框架,如JSUnit或js-test-driver。他们很好,但他们在浏览器中运行测试。这很好,尤其是要验证您的webapp在不同的浏览器中运行。但是在连续集成服务器上没有安装窗口系统(也没有浏览器)。那么有没有一种方法可以在不使用浏览器的情况下运行测试?最好的办法是使用现有的框架之一,以便开发人员可以在浏览器中本地运行测试,持续集成系统可以在浏览器中运行。Javascript的哪个测试框架支持没有浏览器的测试?

+2

这不是你的问题的答案,但我会建议在真正的浏览器中测试的东西。这是最终用户会看到的,因此应该进行测试。 CI上安装了哪些操作系统? – 2009-07-10 12:18:03

+1

CI安装在Linux上,但没有X.因此,在CI服务器上无法在浏览器中进行测试。在浏览器中,无论如何都会由开发人员进行测试,但我想将测试也添加到CI中。 – Mnementh 2009-07-10 12:28:47

+0

phantomjs怎么样? – ShrekOverflow 2013-06-25 17:29:45

回答

1

jsTest可以运行命令行或作为eclipse插件。

但是,如果您需要支持多种浏览器,请注意,使用此类工具无法获得100%的代码覆盖率。每个浏览器都以不同的方式实现JavaScript(即:IE)。因此,完全测试JavaScript的唯一方法是在您支持的所有浏览器中运行测试。

0

我相信Canoo WebTest可以在没有浏览器的情况下运行。这基本上是一个前端测试框架,但可以用来测试JavaScript以及:

http://webtest.canoo.com/

0

JSpec可在没有浏览器的情况下运行(使用Rhino)。但也支持在浏览器中运行。

http://visionmedia.github.com/jspec/

它还提供了一个很好的规格样式语法:

describe 'ShoppingCart' 
    describe 'addProduct' 
    it 'should add a product' 
     cart.addProduct('cookie') 
     cart.addProduct('icecream') 
     cart.should.have 2, 'products' 
    end 
    end 
end 

通过运行在浏览器之外的所有单元测试,你也可以得到保证从HTML你的逻辑分离的好处/表示层(对于web应用程序很有用,对于小脚本可能是过分的)。

0

Jasmine将在node.js内运行得相当开心。

相关问题