无法让rspec与Zeus合作

时间:2013-12-01 21:49:53

标签: ruby-on-rails rspec zeus

我已经阅读了有关如何在使用zeus的rails上获取rspec的所有建议。特别是,我在 spec / spec_helper.rb 中注释掉了“require'rspec / autorun'”:

# require 'rspec/autorun'

我在一个终端启动了宙斯:

  

zeus start

然后在另一个终端运行rspec:

  

zeus rspec spec / controllers / source_configs_controller_spec.rb

得到......什么都没有。没有输出,没有响应,nada - 只是把我转回命令行。但是,如果我在 spec_helper.rb 中取消注释要求'rspec / autorun',然后再次运行它,我会得到:


Failure/Error: post :create, {:account_id => @account.id, :source_config => valid_attributes.except(:account_id)}, {}
NoMethodError:
  undefined method `post' for #<RSpec::Core::ExampleGroup::Nested_2::Nested_1::Nested_1:0x007fbdff3032d8>

有什么想法吗?我觉得我已经失去了更多的时间来解决这个问题,而不是我用更快的速度进行恢复......这太令人沮丧了。

2 个答案:

答案 0 :(得分:1)

经过更多的挖掘和实验,看起来 spec_helper.rb 中的rr(模拟框架)是罪魁祸首。我有

RSpec.configure do |config|
  config.mock_with :rr
  #...
end

修复它:

  1. 升级rr(“捆绑更新rr”)。
  2. 以不同的方式初始化rr:
  3. Gemfile

    group :development, :test do
      gem "rr", :require => false # important to specify ":require => false"
      gem "rspec-rails"
      # (any other appropriate gems)
    end
    

    spec_helper.rb

    require File.expand_path("../../config/environment", __FILE__)
    require 'rspec/rails'
    
    # vvvv NOTE: this is how you enable rr now
    require 'rr'
    
    #require 'rspec/autorun'
    
    # Requires supporting ruby files with custom matchers and macros, etc,
    # in spec/support/ and its subdirectories.
    Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
    
    RSpec.configure do |config|
      # ## Mock Framework
      #
      # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
      #
      # config.mock_with :mocha
      # config.mock_with :flexmock
    
      # vvvv NOTE: Make sure this line is commented out
      # config.mock_with :rr
    
      # ... other rspec config
    end
    

    很想听别人的想法 - 有更好的方法吗?

答案 1 :(得分:0)

所以我遇到了同样的问题并且使用了一些调试我发现测试正在运行,但是没有输出。

到目前为止,将config.reset放在RSpec.configure块的顶部是有效的。我从这里得到了这个想法:https://github.com/burke/zeus/issues/461从这里得到了这个想法:How can I configure rspec to show output with spork?

作为警告,第一个链接中的一条评论提到放config.reset会产生不良副作用,但我还没有碰到任何......。