2017-03-16 11 views
0

(上下文)我想這個面對這個問題@ driver.quit在之後給錯誤:在rspec的

require 'rspec' 
require 'selenium-webdriver' 

RSpec.describe 'New test' do 

    before :each do 
    @driver = Selenium::WebDriver.for (:firefox) 
    end 

    after :all do 
    @driver.quit 
    end 

    it 'should signup and create a new user' do 
    p 'testing' 
    end 
end 

這是我得到

rspec test.rb                              [13:04:18] 
"testing" 
. 
An error occurred in an `after(:context)` hook. 
Failure/Error: @driver.quit 

NoMethodError: 
    undefined method `quit' for nil:NilClass 
# ./test.rb:11:in `block (2 levels) in <top (required)>' 


Finished in 4.61 seconds (files took 0.17828 seconds to load) 
1 example, 0 failures 

錯誤我相信這是一個小東西,我失蹤,但無法找到它的任何幫助,將不勝感激。

這是FF還是硒版本問題?

我使用FF 45和硒2.53和rspec 3.5.4。

回答

1

這是一個RSpec問題。 before/after(:all)鉤子只能訪問在其作用域或外部作用域級別定義的實例變量,但不能訪問正在運行的當前規範中聲明的實例變量。在(:each)之後,鉤子可以訪問當前規範中聲明的實例變量。

before :all do 
@a = 2 
end 

context "blah" do 
    before :all do 
    @b = 3 
    end 

    it "blah blah" do 
    @c = 4 
    # @a,@b,@c all accessible here 
    end 

    after :each do 
    #@a, @b, @c accessible here 
    end 

    after :all do 
    # @a,@b accessible here 
    end 
end 

after :all do 
    #can access @a 
end 
相關問題