Rakefile没有调用默认任务

时间:2015-02-15 05:14:52

标签: ruby-on-rails ruby rspec rakefile simplecov

我正在尝试编写一个rakefile,并且我认为应该调用simplecov然后调用rspec来运行测试,但是当我运行我的rakefile时,没有任何执行。难道我做错了什么?另外,有没有办法给:spec任务一个依赖项,我希望它在执行前调用:simplecov

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 个答案:

答案 0 :(得分: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)。