0

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

1 回答 1

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"]

now runningrake testing将根据需要运行这两个任务。在一个完全独立的注释中,如果您收到退出代码问题(就像我一样),SimpleCov 中似乎存在他们正在处理的错误(问题在这里)。

于 2015-02-15T12:53:16.493 回答