2014-04-15 42 views
1

我試圖測試與特拉維斯CI我的Rails應用程序,並在我的控制器的測試得到了這個錯誤:NoMethodError:未定義的方法`original_path_set」的零:NilClass

DaysController 

    GET 'index' 

An error occurred in an after hook 

    NoMethodError: undefined method `original_path_set' for nil:NilClass 

    occurred at /home/travis/build/violarium/ruby-moon/vendor/bundle/ruby/2.1.0/gems/rspec-rails-2.14.2/lib/rspec/rails/view_rendering.rb:121:in `block (2 levels) in <module:ViewRendering>' 

的問題是,同樣的測試本地傳遞成功。

在這個例子中DaysController是一個簡單的控制器關切 - 模塊一些認證方法:

module UserSession 
    extend ActiveSupport::Concern 

    private 

    # Sign in existent user 
    def sign_in(user) 
    cookies.permanent[:remember_token] = user.remember_token 
    end 

    # Clear cookies 
    def sign_out 
    cookies[:remember_token] = nil 
    end 

    # Get current signed in user or nil 
    def signed_in_user 
    @current_user ||= User.find_by(remember_token: cookies[:remember_token]) 
    end 

    # Check if user is signed in 
    def signed_in? 
    !signed_in_user.nil? 
    end 

    included do 
    helper_method :signed_in? 
    end 
end 
+0

你可以請一個鏈接到特拉維斯版本 –

+0

https://travis-ci.org/violarium/ruby-moon/builds/23058318 – violarium

回答

1

我不知道,這是有原因的,但是當我加入了串問題消失:

cp config/travis/secrets.yml config/secrets.yml 

這是新軌道4.1存儲方式的祕密。

+0

您是否在travis.yml文件中添加了這一行? – ForgetfulFellow

+0

是的,我做到了。像數據庫配置的副本。 – violarium

+0

這是否意味着在Travis服務器上有一個默認的secrets.yml? – ForgetfulFellow

0

這實際上可能是在水豚/ RSpec的護欄錯誤試試升級到最新的RSpec的護欄和水豚。

有關更多詳細信息,請參閱https://github.com/rspec/rspec-rails/issues/860

+0

我不確定這是一個原因,但問題消失時,我添加字符串: cp config/travis/secrets.yml config/secrets.yml 這是新的rails 4.1存儲祕密的方法。 – violarium

相關問題