如何使用参数和依赖项定义 Rake 任务
How to define a Rake task with arguments and dependencies
我寻找了这个高点和低点,特别是一个 RSpec 具有依赖性和任务参数的 rake 任务 - 找到了答案并帮助了后代
基本上我想按标签过滤测试,并传入用于某些应用程序特定行为的触发器。
bundle exec rake spec[some_tag,some_trigger]
我想依赖 :clean 和 'test-reports' 任务
答案在 lib/rake/task_manager.rb 文件中记录 'resolve_args_with_dependencies(args, hash)' 方法的注释中。
# 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
我寻找了这个高点和低点,特别是一个 RSpec 具有依赖性和任务参数的 rake 任务 - 找到了答案并帮助了后代
基本上我想按标签过滤测试,并传入用于某些应用程序特定行为的触发器。
bundle exec rake spec[some_tag,some_trigger]
我想依赖 :clean 和 'test-reports' 任务
答案在 lib/rake/task_manager.rb 文件中记录 'resolve_args_with_dependencies(args, hash)' 方法的注释中。
# 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