Настройка задачи rspec2 в Rakefile - PullRequest
8 голосов
/ 21 мая 2011

У меня есть Rakefile, который выглядит так:

require 'rspec/core/rake_task'

desc "Run all RSpec tests"
RSpec::Core::RakeTask.new(:spec)

Это не работает, хотя. Например, если я попытаюсь запустить "rake -T", я получу:

code/projects/bellybuster[master]% rake -T --trace
(in /Users/craig/code/projects/bellybuster)
rake aborted!
no such file to load -- rspec/core/rake_task
/Users/craig/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/Users/craig/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/Users/craig/code/projects/bellybuster/Rakefile:1:in `<top (required)>'
/Users/craig/.rvm/gems/ruby-1.9.2-p180/gems/rake-0.8.7/lib/rake.rb:2383:in `load'

Есть мысли?

В случае, если это может быть полезно, вот Gemfile:

source :rubygems

gemspec

Да, и некоторые версии:

  • Рубин: 1.9.2p180
  • Рейк: 0,8,7
  • Bundler: 1.0.13
  • RubyGems: 1.7.2

Ответы [ 4 ]

8 голосов
/ 21 мая 2011

Синтаксис выглядит хорошо для меня. Вы на 100% уверены, что у вас установлена ​​rspec 2? Это появляется с gem which rspec? Может быть, вы забыли запустить bundle install или не указали rspec в файле .gemspec как зависимость (для разработчиков)?

6 голосов
/ 17 мая 2012

Используете ли вы Heroku?

Я получил ту же проблему, нашел это решение в Руководство Fancy :

## One common example using the RSpec tasks in your Rakefile. 
## If you see this in your Heroku deploy:

$ heroku run rake -T
Running `bundle exec rake -T` attached to terminal... up, ps.3
rake aborted!
no such file to load -- rspec/core/rake_task

## Now you can fix it by making these Rake tasks conditional 
## on the gem load. For example:

## Rakefile

begin
  require "rspec/core/rake_task"

  desc "Run all examples"
  RSpec::Core::RakeTask.new(:spec) do |t|
    t.rspec_opts = %w[--color]
    t.pattern = 'spec/*_spec.rb'
  end
rescue LoadError
end

## Confirm it works locally, then push to Heroku.
1 голос
/ 30 октября 2013

Вы используете Travis-CI? Я исправил это, переместив 'rake' из gemspec в Gemfile, т.е.

source "https://rubygems.org"

# Specify your gem's dependencies in pipboy.gemspec
gemspec

group :test do
  gem 'rake'
end

Не уверен, что это правильное решение, но оно сработало для меня ..

0 голосов
/ 24 мая 2011

Я просто уничтожил мою существующую папку с гемом и переустановил все, запустив bundle install. Это решило проблему для меня.

...