在 rspec 测试之前启动 Rails?
在 RSpec 测试中,按照约定或代码,是否有任何方法可以在测试运行之前启动 Rails?我正在尝试为使用 chrome 的 selenium 测试设置一个测试框架,现在我只因缺乏正在运行的服务器而受到阻碍。
require 'spec_helper'
describe 'The first tab' do
before(:each) do
@driver = Selenium::WebDriver.for :chrome
end
it 'Shows the list' do
@driver.navigate.to 'index.html'
end
end
我是 RSpec 的新手,所以我不确定如何创建一套在 Rails 服务器运行时运行的测试。
Is there any way within an RSpec tests, by convention or code, to have rails start before tests run? I'm trying to setup a testing framework for selenium tests that use chrome, and now I'm only hindered by my lack of a running server.
require 'spec_helper'
describe 'The first tab' do
before(:each) do
@driver = Selenium::WebDriver.for :chrome
end
it 'Shows the list' do
@driver.navigate.to 'index.html'
end
end
I'm new to RSpec, so I'm not sure how I would create a suite of tests that all ran while a rails server was running.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您应该使用 Capybara 来测试这个东西。它内部使用 selenium-webdriver 来提供 JavaScript 测试支持。
使用 Capybara,您可以将此测试放在
spec/integration
或spec/requests
文件夹中,并按如下方式编写: true 在示例名称后面 Capybara 会知道将其作为 JavaScript 测试来运行。
You should be using Capybara to test this stuff instead. It uses selenium-webdriver internally to provide JavaScript testing support.
with Capybara, you put this test in either the
spec/integration
orspec/requests
folder and write it like this:By putting
:js => true
after the example's name Capybara will know to run this as a JavaScript test.只需运行 Rails Server 并终止进程即可完成测试。
Just run
rails server
and kill the process went tests complete.