2015-02-15 5 views
0

Я пытаюсь изо всех сил писать пишущий файл rakefile и иметь то, что, как я думаю, должен назвать simplecov, а затем вызвать rspec для запуска тестов, но когда я запускаю свой rakefile, ничего не выполняется. Я делаю что-то неправильно? Кроме того, есть способ дать задаче :spec зависимости, я хочу, чтобы она вызывала :simplecov, прежде чем она будет выполнена.Rakefile не вызывает задачу по умолчанию

require 'rake' 

task :coverage do 
    require 'simplecov' 
    SimpleCov.start 'rails' 
end 

require 'rspec/core/rake_task' 
RSpec::Core::RakeTask.new(:spec) 

task :default => [:coverage, :spec] 

ответ

1

К сожалению, по умолчанию у пользователя может быть только одна задача, но вы можете использовать пространство имен для объединения задач вместе. Ваш может выглядеть следующим образом:

require 'rake' 

namespace :rspec_cov do 
    task :coverage do 
    require 'simplecov' 
    SimpleCov.start 'rails' 
    end 

    task :spec do 
    sh 'bundle exec rspec' 
    end 
end 

task :testing => ["rspec_cov:coverage", "rspec_cov:spec"] 

сейчас работает rake testing будет работать как те задачи, которые вы хотите. В совершенно отдельной заметке, если вы получаете проблему с кодом выхода (как и я), похоже, в SimpleCov есть ошибка, над которой они работают (issue here).