2012-02-24 23 views
0

Я пытаюсь использовать CruiseControl.rb (версия 2.0.0pre1) с RSpec для моего приложения Ruby on Rails 3. cruise_config.rb для моего проекта выглядит следующим образом:CruiseControl.rb с RSpec: Rake task 'spec' not found

Project.configure do |project| 
    project.rake_task = 'db:migrate db:test:prepare spec' 
    project.scheduler.polling_interval = 1.hour 
    project.scheduler.always_build = false 
end 

Но когда я пытаюсь запустить сборку с CruiseControl, он говорит:

rake aborted! 
Custom rake task(s) 'spec' not defined 

Tasks: TOP => cc:build 
(See full trace by running task with --trace) 

Он не может найти спецификации грабли задачу запустить RSpec тесты. Я также попытался определить пользовательскую задачу грабли в моей Rakefile и удалить project.rake_task = 'db:migrate db:test:prepare spec' линию внутри cruise_config.rb:

desc "Custom Task for CruiseControl.rb" 
task :cruise do 
    puts "Custom Rake task" 
    Rake::Task['db:migrate'].execute 
    Rake::Task['db:test:prepare'].execute 
    Rake::Task['spec'].execute 
end 

Если я сделать так, CruiseControl говорит

rake aborted! 
ActiveRecord::ConnectionNotEstablished 

Tasks: TOP => cruise 
(See full trace by running task with --trace) 
[CruiseControl] Invoking Rake task "cruise" 
Custom Rake task 

ли кто-нибудь работает с CruiseControl.rb RSpec?

ответ

4

Убедитесь, что у вас есть :spec задачи, определенной в вашем Rakefile, для RSpec 2, это выглядит следующим образом:

require 'rspec/core/rake_task' 

RSpec::Core::RakeTask.new(:spec) 
+1

круто, что помогло. спасибо! – 23tux

+0

Еще один вопрос, может быть, вы можете помочь: когда я запускаю тесты с cruisecontrol, указав '' project.rake_task = 'spec''' внутри '' cruise_config.rb'' cruisecontrol передает сборку, даже если тест завершился неудачно. Я прочитал sth о статусе exti, но ничего не помогло. – 23tux

+0

Я не использую круиз-контроль, извините – farnoy