我想知道作为Rails 3.1应用程序的一部分,进行JavaScriptUnit测试的最简单方法是什么。
我非常喜欢Jasmine,它工作得相当不错(尽管它要拿起.coffee
文件需要一些技巧)。
Jasmine的唯一问题是它在一个巨大的页面中运行所有的测试示例,这是非常有问题的,因为它需要加载所有的脚本。
我真正想要的是Jasmine+多个文件中的多个测试套件(这样它就可以生成多个html文件,包括规范文件)。
除此之外,我还想在浏览器中、无头或JS引擎中(如果可能)运行测试(希望很容易)。
有什么建议吗?
5条答案
按热度按时间utugiqy61#
Teaspoon做了很多您想要的事情。
大部分是我写的,它是基于我写javascript规范和使用Rails 3.1/coffeescript的经验,你的问题包括了一些让我想在第一时间贡献它的东西。
澄清一下,Teaspoon支持定义多个套件,有一个rake任务,支持使用Selenium Webdriver或PhantomJS作为驱动程序,Jasmine、Mocha或QUnit测试框架,允许从命令行运行(例如
bundle exec teaspoon spec/javascripts/my_spec.coffee
),以及其他一些不错的功能。nkcskrwz2#
在我工作的地方,我们希望找到一个解决方案,以涵盖几乎你所提到的。
我们研究了以下框架:
我们最终选择了teaspoon。它需要最少的设置,并且很容易与CI集成。它提供套件、资产管道支持(以便您可以测试.coffee而不需要黑客攻击),并且可以在RAILS_ENV=test中运行
2w2cym1i3#
你可能想试试
evergreen
(https://github.com/jnicklas/evergreen),它允许你用jasmine
编写测试用例,并在浏览器中、无头或JS引擎中运行测试。您可以在www.example.com的自述文件部分找到此gem的用法https://github.com/jnicklas/evergreen#readme
不幸的是,万年青在rails3.1的新特性上还不能很好的运行(在这个答案被给出的时候),所以我试着创建一些monkey补丁来让它运行的很好。
xmjla07d4#
到目前为止,我还没有找到一个合理的答案,但是issue #24 of jasminerice可能是最接近答案的,如果它将被实现的话
jaxagkaj5#
也许可以试试jasmine-headless-webkit,它提供了在无头Webkit浏览器中运行Jasmine规范的能力。