7

rake タスクに引数を渡すことができることがわかりました。

task :task_name, :arg_name do |t, args|

私がやりたいのは、キュウリのレーキ タスクに引数を渡すことです。

Cucumber::Rake::Task.new({:tags => 'db:test:prepare'}) do |t, args|
  t.cucumber_opts = ['--tags', #args?]
end

このようなことは可能ですか?このようにして私はできる:

rake cucumber:tags['tag1', 'tag2', ...]

そして、それらのタグのみを実行させます。ほとんどの情報源は、私が行った環境変数を使用すると言っていますが、引数を「正しい」方法で提供することを好みます。

4

2 に答える 2

-1

これを行う1つの方法は、次のような環境変数を使用することです。rake cucumber:tags TAGS=tag1,tag2次に、rakeタスクで解析するだけARGVです。

tags = ARGV[1].gsub(/.+=/, '')

Cucumber::Rake::Task.new({:tags => 'db:test:prepare'}) do |t, args|
  t.cucumber_opts = ['--tags', tags]
end

このようにさらに柔軟にすることもできます

tags_index = ARGV.index {|a| a.start_with?('TAGS') }
tags = ARGV[tags_index].gsub(/.+=/, '')

しかし、おそらくOptionParserのようなものを使用したほうがよいでしょう。

于 2012-11-21T14:37:52.400 に答える