Rakefile 不调用默认任务

Rakefile not calling default task

我正在尝试编写一个 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]

不幸的是,默认只能有一个任务,但欢迎您使用命名空间将任务打包在一起。你的可能看起来像:

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)。