- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
尝试调试在合并 Rails 两个项目时无法工作的规范部分。
我已经删除了我的 Gemfile.lock 并从头开始重新安装,我已经对特定的 gem 运行了包更新,但是当我尝试在我的请求规范中使用时出现错误
保存并打开页面
railsdev$ bin/rspec spec/requests/authentication_pages_spec.rb
No DRb server is running. Running in local process instead ...
/Users/rb/Repos/Genie/spec/requests/authentication_pages_spec.rb:33:in `block (3 levels) in <top (required)>': undefined local variable or method `save_and_open_page' for #<Class:0x007f981d139608> (NameError)
from /Users/rb/.rvm/gems/ruby-1.9.3-p125@genie/gems/rspec-core-2.10.1/lib/rspec/core/example_group.rb:201:in `module_eval'
from /Users/rb/.rvm/gems/ruby-1.9.3-p125@genie/gems/rspec-core-2.10.1/lib/rspec/core/example_group.rb:201:in `subclass'
from /Users/rb/.rvm/gems/ruby-1.9.3-p125@genie/gems/rspec-core-2.10.1/lib/rspec/core/example_group.rb:187:in `describe'
from /Users/rb/Repos/Genie/spec/requests/authentication_pages_spec.rb:27:in `block (2 levels) in <top (required)>'
from /Users/rb/.rvm/gems/ruby-1.9.3-p125@genie/gems/rspec-core-2.10.1/lib/rspec/core/example_group.rb:201:in `module_eval'
from /Users/rb/.rvm/gems/ruby-1.9.3-p125@genie/gems/rspec-core-2.10.1/lib/rspec/core/example_group.rb:201:in `subclass'
from /Users/rb/.rvm/gems/ruby-1.9.3-p125@genie/gems/rspec-core-2.10.1/lib/rspec/core/example_group.rb:187:in `describe'
from /Users/rb/Repos/Genie/spec/requests/authentication_pages_spec.rb:24:in `block in <top (required)>'
from /Users/rb/.rvm/gems/ruby-1.9.3-p125@genie/gems/rspec-core-2.10.1/lib/rspec/core/example_group.rb:201:in `module_eval'
from /Users/rb/.rvm/gems/ruby-1.9.3-p125@genie/gems/rspec-core-2.10.1/lib/rspec/core/example_group.rb:201:in `subclass'
from /Users/rb/.rvm/gems/ruby-1.9.3-p125@genie/gems/rspec-core-2.10.1/lib/rspec/core/example_group.rb:187:in `describe'
from /Users/rb/.rvm/gems/ruby-1.9.3-p125@genie/gems/rspec-core-2.10.1/lib/rspec/core/dsl.rb:18:in `describe'
from /Users/rb/Repos/Genie/spec/requests/authentication_pages_spec.rb:13:in `<top (required)>'
from /Users/rb/.rvm/gems/ruby-1.9.3-p125@genie/gems/rspec-core-2.10.1/lib/rspec/core/configuration.rb:746:in `load'
from /Users/rb/.rvm/gems/ruby-1.9.3-p125@genie/gems/rspec-core-2.10.1/lib/rspec/core/configuration.rb:746:in `block in load_spec_files'
from /Users/rb/.rvm/gems/ruby-1.9.3-p125@genie/gems/rspec-core-2.10.1/lib/rspec/core/configuration.rb:746:in `map'
from /Users/rb/.rvm/gems/ruby-1.9.3-p125@genie/gems/rspec-core-2.10.1/lib/rspec/core/configuration.rb:746:in `load_spec_files'
from /Users/rb/.rvm/gems/ruby-1.9.3-p125@genie/gems/rspec-core-2.10.1/lib/rspec/core/command_line.rb:22:in `run'
from /Users/rb/.rvm/gems/ruby-1.9.3-p125@genie/gems/rspec-core-2.10.1/lib/rspec/core/runner.rb:66:in `rescue in run'
from /Users/rb/.rvm/gems/ruby-1.9.3-p125@genie/gems/rspec-core-2.10.1/lib/rspec/core/runner.rb:62:in `run'
from /Users/rb/.rvm/gems/ruby-1.9.3-p125@genie/gems/rspec-core-2.10.1/lib/rspec/core/runner.rb:10:in `block in autorun'
谁能指出它失败的原因以及我需要做些什么来纠正这个问题?
我让它在一个测试项目中运行,但在核心项目的主副本中我不想把它搞砸。
编辑#1
要求的代码:
require 'spec_helper'
# describe "AuthenticationPages" do
# describe "GET /authentication_pages" do
# it "works! (now write some real specs)" do
# # Run the generator again with the --webrat flag if you want to use webrat methods/matchers
# get authentication_pages_index_path
# response.status.should be(200)
# end
# end
# end
describe "Authentication" do
subject { page }
describe "login page" do
before { visit login_path }
it { should have_selector('h1', text: 'Login') }
it { should have_selector('title', text: 'Login') }
end
describe "login" do
before { visit login_path }
describe "with invalid information" do
before { click_button "Login" }
it { should have_selector('title', text: 'Login') }
it { should have_error_message('Invalid') }
save_and_open_page
describe "after visiting another page" do
before { click_link "Home" }
it { should_not have_selector('div.alert.alert-error') }
end
end
describe "with valid information" do
let(:user) { FactoryGirl.create(:user) }
before { valid_login(user) }
it { should have_selector('title', text: user.name) }
#it { should have_link('Profile', href: user_path(user)) }
it { should have_link('Logout', href: logout_path) }
it { should_not have_link('Login', href: login_path) }
describe "followed by logout" do
before { click_link "Logout" }
it { should have_link('Login') }
end
end
end
describe "authorization" do
describe "for non-logged-in users" do
let(:user) { FactoryGirl.create(:user) }
describe "when attempting to visit a protected page" do
before do
visit edit_user_path(user)
fill_in "Name", with: user.name
fill_in "Password", with: user.password
click_button "Login"
end
describe "after logging in" do
it "should render the desired protected page" do
page.should have_selector('title', text: 'Edit user')
end
end
end
describe "in the Users controller" do
describe "visting the user index" do
before { visit users_path }
it { should have_selector('title', text: 'Login') }
end
describe "visiting the edit page" do
before { visit edit_user_path(user) }
it { should have_selector('title', text: 'Login') }
end
describe "submitting to the update action" do
before { put user_path(user) }
specify { response.should redirect_to(login_path) }
end
end
end
describe "as wrong user" do
let(:user) { FactoryGirl.create(:user) }
let(:wrong_user) { FactoryGirl.create(:user, name: "WrongName") }
before { login user }
describe "visiting Users#edit page" do
before { visit edit_user_path(wrong_user) }
it { should_not have_selector('title', text: full_title('Edit user')) }
end
describe "submitting a PUT request to the Users#update action" do
before { put user_path(wrong_user) }
specify { response.should redirect_to(root_path) }
end
end
end
end
gem 文件:
source 'https://rubygems.org'
gem 'rails', '3.2.5'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
group :development, :test do
gem 'sqlite3', '1.3.5'
gem "rspec-rails", "~> 2.10.1"
gem 'guard-rspec', '0.5.5'
gem 'annotate', '~> 2.4.1.beta'
gem 'pickle'
gem 'simplecov'
gem 'pg', '0.12.2'
gem 'capybara', '1.1.2'
gem 'launchy'
end
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '~> 3.2.4'
gem 'coffee-rails', '~> 3.2.2'
gem 'uglifier', '>= 1.2.3'
gem 'bootstrap-sass', '~> 2.0.3.1'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', :platform => :ruby
end
gem 'jquery-rails', '2.0.2'
gem 'bootstrap-will_paginate', '0.0.5'
gem 'bootstrap-datepicker-rails'
gem 'will_paginate', '3.0.3'
gem 'faker', '1.0.1'
gem 'wicked_pdf'
# To use ActiveModel has_secure_password
gem 'bcrypt-ruby', '3.0.1'
#gem 'ransack'
gem 'cancan'
# Test gems on Macintosh OS X
group :test do
gem 'rb-fsevent', :git => 'git://github.com/ttilley/rb-fsevent.git', :branch => 'pre-compiled-gem-one-off'
gem 'growl', '1.0.3'
gem 'guard-spork', '0.3.2'
gem 'spork', '0.9.0'
gem 'factory_girl_rails', '4.1.0'
gem 'cucumber-rails', '1.2.1', :require => false
gem 'database_cleaner', '0.7.0'
end
group :production do
gem 'pg', '0.12.2'
end
最佳答案
尝试从 it block 内调用 save_and_open_page
:
所以代替:
it { should have_error_message('Invalid') }
save_and_open_page
试试这个:
it { should have_error_message('Invalid'); save_and_open_page }
今晚帮我修好了
关于ruby-on-rails-3.2 - save_and_open_page (capybara/launchy) 停止在项目中工作 - 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12608976/
我有一个文件字段,其中包含 opacity: 0并且正在重叠一个假按钮。它是一种常见的 css 技术,可以伪造一种在不同浏览器中一致显示的“上传按钮”。 Capybara 不允许我打电话 attach
我正在尝试为我的 ROR 应用程序编写一些 capybara cucumber 脚本,但发现很难通过每次都进行更改并运行完整功能来使脚本正确。 是否有适用于 Capybara 的 REPL(Read
像这样的html 我的代码是 attach_file("ok","./fileset/publisher/upload_pic.jpg") 但我失败了: 失败: Capybara::Element
我想在我的代码中设置不同的 Capybara 等待时间,具体取决于它们通常需要多长时间才能完全加载?我是否必须重复更改 Capybara.default_wait_time 还是有更好的方法? 最佳答
在 Capybara 中,是否可以在新窗口而不是当前窗口中打开链接? 最佳答案 如果此元素是链接,您只需获取其 href 并在新窗口中打开它: url = find('.some_link')[:hr
对于编辑记录的集成测试,我尝试用新文本替换表单输入字段中的现有文本: find("input[@id='course_title']").set("a safer workplace") 但是,每次我
我有一个动态生成的表单,如下所示: Do you like Pizza? [ ] Yes [ ] No HTML 看起来像这样: Do you like Pizza?
我正在尝试填写两个标有 id="admin_passsword"的文本框。我可以轻松访问第一个文本框,但由于除了占位符和上面的标签之外没有任何区别,我不知道如何访问第二个文本框来填写该字段。
我是一个新手,尝试使用 Capybara 测试我的 Rails 项目,但是当我尝试从我的 div 中检测一些字符串时,我对 page 和 page.body 的含义感到困惑:(in :js=>true
我在使用 rspec、capybara、capybara-webkit 和 timecop 的某些集成规范中看到错误。 Capybara::FrozenInTime: time appears
我使用以下 html 堆栈创建了自定义上传表单: 文件字段通过 display: none 的 css 隐藏属性(property)。因此,当她单击标签(自定义样式)时,用户会调用文件
假设我在 Mac OS X 上安装了 PhantomJS,我可以编写一个普通的旧 Ruby 脚本(没有 Cucumber,没有 RSpec)来驱动 Poltergeist 吗?换句话说,我想要一些 g
我希望单击我的测试应用程序上出现的弹出消息(如果存在)。我对 capybara 很陌生,似乎找不到办法做到这一点。我以前有过使用 watir 的经验,如果我使用 watir 的话,会是这样的: if
我目前使用 Watir-webdriver 进行所有前端测试,但开发团队使用 Capybara 在 Jenkins CI 上运行测试。我们都使用相同的 Cucumber 功能。 值得我们进行两次有效的
Capybara的API似乎不支持配置HTTP代理。有没有什么方法可以和它一起使用? 上下文:我使用 capybara 和 cucumber 来测试 Rails 应用程序,并使用 akephalos
我很好奇是否有更好的方法来测试页面中是否存在完整的 URL(包括协议(protocol))。 使用 Capybara 2.10.2 和 Rails 5.0.0.1,我有以下设置: rails_help
我有以下测试: it 'shows the current quantity of items inside cart' do item = create(:item) visit
我正在使用 Capybara 自动截取一些屏幕截图。 我需要 chrome 浏览器最大化运行,但我似乎无法让它工作。 基于 https://sites.google.com/a/chromium.or
下面是两个单选按钮的 html 代码,它们只是“值”属性不同 我想做的是选择“value =2”的单选按钮 我尝试使用“选择(“AmountOption”)”选择第一个单选按钮,但我想选择第二个单
我尝试使用几种变体来检查 Capybara 的 200 Ok HTTP 响应,但没有一个变体不起作用: response.should be_success page.status.should be
我是一名优秀的程序员,十分优秀!