Rails 3.1和资产管道的Javascript单元测试

Javascript unit-testing for Rails 3.1 and asset pipeline

本文关键字:管道 Javascript 单元测试 Rails      更新时间:2023-09-26

我正在为Rails3.1寻找最简单的Javascript单元测试系统,它特别能够开箱即用地使用资产管道。

我试过各种各样的茉莉宝石,包括茉莉米,无头茉莉网络工具包。Jasminegem似乎无法开箱即用rails3.1,需要调整各种配置文件。Jasmine rice和headless Jasmine webkit都有复杂的依赖关系,需要对配置文件进行更多的调整。

有什么建议吗?理想情况下,我需要包括HTML/HAML固定装置,并且是无头的,但在这一点上,我会对任何允许我用最小配置测试javascript的东西感到满意。

Jasmine是最好的解决方案。我们正在使用它来测试我们所有的JS代码。它与CoffeeScript配合使用也很好。

但不要安装RubyGems.org的版本(它已经有一段时间没有更新了),只需从github获取最新版本,例如添加到您的Gemfile:

group :test do    
  gem 'jasmine', :git => 'https://github.com/pivotal/jasmine-gem.git'
end

然后您可以运行rake jasmine并转到http://localhost:8888来运行测试。无头webkit也可以。

我一直在寻找一种可以让我在visual studio中的MS test中对javascript进行单元和功能测试的东西。花了我很长时间,但我找到了WatiN。WatiN将要做的是打开internet explorer并运行网页。如果您以管理员身份运行IDE,您甚至可以打开本地HTML文件。

我目前正在将它与Visual Studio一起使用,以对我的所有javascript进行功能和单元测试。我认为到目前为止,这是从IDE运行javascript功能测试的最佳解决方案。对于我的单元测试,我使用了YUI测试,但由于您正在打开浏览器并在浏览器中运行javascript,因此可以使用任何您想要的javascript测试框架(如qUnit)。

我一直在使用QUnit,这是一个基于jQuery:的简单而有效的单元测试库

http://docs.jquery.com/QUnit

希望迟到总比不迟到好。。。我刚刚写了一个小图书馆,应该可以解决你的问题:https://github.com/proxv/qlive-rails

它将qunit和您的qunit测试注入到实时服务器响应中。它还允许您在测试之前设置服务器端的状态(比如登录用户和设置页面内容),以减少客户端的嘲笑。

如果您使用的是rspec,那么还有一个附加组件将与其他rspec示例一起无头地运行qunit测试。