1. 在集成测试的时候,使用rspec + Capybara, 不要使用cucumber, 因为cucumber 和 Rspec 是两个不同的模式, 对于以后的维护,你要写两份程序。
而且Cucumber消耗更多的memory, 最后就是capybara 更多的倾向于acceptance test. 一般公司都是不需要的。
2. 使用Capybara 需要配合使用 launchy
否则无法使用save_and_open_page 的功能
3. 如果只使用capybara 是无法对javascript 进行测试的。 因为Javascipt需要一个解释器(比如说浏览器). 那么如何使用Capybara 去测试了
很简单在程序中加入
:js => true
比如下面的程序
it "supports js", :js => true do visit tasks_path click_link "test js" page.should have_content("js works") end
这样在 执行测试的时候, 由于默认的驱动就是selenium, 系统会自动打开浏览器进行测试。
4. 使用Capybara 外加 selenium 有比较多的缺点, 第一就是需要安装浏览器, 很麻烦吧。。 第二执行速度又慢。 消耗很多的资源。
没有console.log output, 不可见的javascript errors 等等
具体的可以看这里 http://www.slideshare.net/bostonrb/capybarawebkit
5. 使用浏览器去执行Javascript, 很不划算。 所以就有人发明了一个库,取名叫webkit 它的功能类似于浏览器, 但是比起浏览器, 它只提供一些必须的功能 比如说render, CSS ,HTML. DOM, Layout 的显示。 而且webkit h很轻。
6. 如何使用capybara-webkit, 这里有具体的介绍
https://github.com/thoughtbot/capybara-webkit
capybara-webkit 是基于qt4库的,所以在你的Linux环境中一定要安装 libqt4-dev
7. 但是使用capybara-webkit, 我们还是需要浏览器, 只是这个浏览器更轻了而已。
那能不能向rspec那样在terminal里面跑,而不需要浏览器了 这个时候,就需要headless.
那么headless 是什么了,就是不需要真正的浏览器,而是在内存空间内启动一个假想的display 去测试。
记得安装哦
要使用headlesa 的话,一定要记得安装
一下就是一些配置