[英]Uninitialized constant Capybara
我在使用Capybara的導軌中運行測試時遇到問題。 每當我運行它時,它告訴我在spec_helper.rb文件中有一個'未初始化的常量Capybara(NameError)'。
我正在學習本教程: http : //www.railstutorial.org/book/static_pages#code-capybara_dsl
這是我的spec_helper.rb
RSpec.configure do |config|
config.include(Capybara::DSL)
end
我正在嘗試運行此測試static_pages_spec.rb
require 'spec_helper'
describe "Static pages" do
it "should have the content 'Sample App'" do
visit '/static_pages/home'
expect(page).to have_content('Sample App')
end
如果還有其他需要的信息,請告訴我
-------- UPDATE ----------------
我解決了這個問題。 Rspec的版本我在spec文件夾中創建了一個rails_helper.rb文件。 我必須做:
require 'capybara/rspec'
在該文件和config.include Capybara :: DSL中的配置。
-----新問題------------但是現在我遇到了另一個問題,就是說'訪問'是未定義的。
undefined method `visit' for #<RSpec::ExampleGroups::StaticPages::AboutPage:0x000001033f5d50>
我試過要求'capybara',並要求'capybara / dsl',但他們仍然給我錯誤,然后一些。
我找到了問題,我正在初始化常量水豚,因為在較新版本的rspec中,當你第一次創建一個spec文件夾時,它會創建一個新文件夾“rails_helper”,它會同時創建rails_helper和spec_helper。 spec文件夾中的第一個模擬斑點測試位於頂部
require 'rails_helper'
我正在按照一個教程告訴我要求'spec_helper',但對於較新版本的rspec則不然。
所以我補充道
config.include(Capybara::DSL)
在rails helper文件夾中,一切正常,除了我的css錯誤,但我相信這是因為測試運行無頭,所以他們不工作。 顯示所有錯誤后,規范測試運行正常。 如果您還有其他問題,請告訴我。
這很容易做到所需的一切,然后忘記通過Gemfile加載Capybara gem。 我這樣做了,所以這條消息對我來說很熟悉。
也許這種情況的證明對人們有幫助; 節省一些寶貴的時間。 :)
在以前的工作環境中,我通過在Gemfile中注釋掉水豚線來隱藏Capybara。 結果是一個類似的錯誤消息,'未初始化的常量Capybara(NameError)',由rails_helper拋出:
$ rspec spec
Running via Spring preloader in process 17470
/Users/Art/RailsProjects/MyRailsProj/spec/rails_helper.rb:67:in `block in <top (required)>': uninitialized constant Capybara (NameError)
順便提一下,OP可能一直在使用版本之前的Capybara版本,其中存在兩個文件:rails_helper和spec_helper。
在我的設置中,
config.include(Capybara::DSL)
在rails_helper.rb中。
順便說一句,如果您在spec_helper中看到Capybara的示例,那么這些頁面可能正在描述之前的文件組織。
添加require 'capybara/rails'
到您的測試助手
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.