如何使用参数和依赖关系定义Rake任务

时间:2015-12-27 00:44:04

标签: ruby rspec rake

我追求这个高低,特别是RSpec rake任务,包括依赖和任务参数 - 找到答案并帮助后代

基本上我想按标签过滤测试,并传入我用于某些特定应用行为的触发器。

bundle exec rake spec[some_tag,some_trigger]

我想依靠:干净的'测试报告'任务

1 个答案:

答案 0 :(得分:3)

答案在于记录' resolve_args_with_dependencies(args,hash)' lib / rake / task_manager.rb文件中的方法。

# The patterns recognized by this argument resolving function are:
#
#   task :t => [:d]
#   task :t, [a] => [:d]

所以这意味着您需要按如下方式声明任务

# :spec task depends on clean and 'test-reports' tasks
# and takes args for tags and triggers
RSpec::Core::RakeTask.new(:spec, [:tag, :triggers] => [:clean, 'test-reports']) do |task, args|
  task.rspec_opts = "--tag #{args[:tag]}"
  # args is a Rake::TaskArguments object (NOT a hash)
  ENV[TRIGGERS] = args[:triggers]
end