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