6

私はスポークとガードを実行していますが、すべて正しく実行されたRSpecテストですべてが非常にうまくいっています。.rspecテストを高速化するために、ファイルに配置したタグを使用してRSpecテストを正常にフィルタリングできました。

.rspec

--colour
--debug
--tag focus
--tag now

残念ながら、キュウリのタグをフィルタリングすることはできませんでした。cucumberを実行するたびに、変更されたすべてのファイルまたはファイルのみが実行されます。

@ wip、@ nowなどのタグを尊重するようにキュウリ/スポーク/ガードを取得し、それらのテストのみを実行するにはどうすればよいですか?.rspecキュウリのタグのファイルに相当するものはありますか?

4

5 に答える 5

3

キュウリのプロファイルを使用して、実行するタグを定義できます。YMLファイルを使用して、@wipタグを実行するプロファイルを定義できます。

wip: --tags @wip

詳細情報:

https://github.com/cucumber/cucumber/wiki/cucumber.yml

コマンドラインからcucumberを実行して、-t引数を渡すこともできます。

cucumber -t @wip,@now

ヘルプから(キュウリ-h):

TAG_EXPRESSIONと一致するタグを持つ機能またはシナリオのみを実行してください。シナリオは、機能レベルで宣言されたタグを継承します。最も単純なTAG_EXPRESSIONは、単なるタグです。例:-tags@dev。タグ式のタグが〜で始まる場合、これはブールNOTを表します。例:-tags〜@dev。タグ式には、論理ORを表すコンマで区切られた複数のタグを含めることができます。例:-tags @ dev、@wip。--tagsオプションは複数回指定でき、これは論理積を表します。例:-tags @ foo、〜@ bar--tags@zap。これはブール式を表します(@foo ||!

したがって、理論的には、次のオプションでガードファイルを使用できます。

guard 'cucumber', :cli => "--drb --tags @now" do
  watch(%r{^features/.+\.feature$})
  ...
end
于 2012-02-10T09:59:39.770 に答える
2

理解しておくべき重要な概念は、タグプロファイルの間に違いがあるということです。Guard with Cucumberも使用していますが、デフォルトのプロファイルが引き続き使用され、@ wip(Work In Progress)タグが取得されていないことに不満を感じていました。なぜそうなったのかは今や明らかです。他のフォーラムで述べられているように、私のデフォルトのプロファイルは@wipを除外します。

<config / cucumber.yml>

<%
rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
base_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'}"
std_opts = "#{base_opts} --strict --tags ~@wip"
wip_opts = base_opts
%>
default: --drb <%= std_opts %> features
wip: --drb <%= wip_opts %> --tags @wip:3 --wip features
rerun: --drb <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip

"std_opts ="#{base_opts} --strict --tags〜@ wip "<= wipはここstd_optsで除外されます

'@wip'でマークされたシナリオまたは機能を含む'wip'プロファイルを使用したい!

wip:--drb <%= wip_opts%> --tags @ wip:3 --wip features"<=数値は実行するシナリオの最大数を表します;'--wip'は、Cucがテストが失敗することを予期していることを示します(私たちはそれに取り組んでいるので)

したがって、タグはすでに構成されており、*。featureファイルに「@wip」を含めています。プロファイルはどうですか?Guard(Spork)を使用する場合、「wip」プロファイルを使用するには、それを構成する必要があります。それは理にかなっている; コンピューターは私の心を読み取ることができません!'wip'プロファイルを使用するようにGuardfileを更新します。

<ガードファイル>

guard 'cucumber', :cli => "--drb -p wip", :all_on_start => false, :all_after_pass => false do
  watch(%r{^features/.+\.feature$})
  watch(%r{^features/support/.+$})          { 'features' }
  watch(%r{^features/step_definitions/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' }
end

ガード'キュウリ'、:cli => "--drb -p wip "<= '-p'目的のプロファイルを指定します

そして今、私のシナリオは「wip」によって正常にフィルタリングされています。

于 2012-06-08T20:20:49.993 に答える
2

このオプションがいつ導入されたかはわかりませんが、guard-cucumberには、特定のタグに焦点を合わせる機能があります(これは、常にフィルタリングする特定のタグをハードコーディングすることとは異なります)。この構成オプションはGuardfileに残して、必要な場合にのみフォーカスタグを使用できます。

# Guardfile
guard 'cucumber', :focus_on => 'myfocustag' do
  ...
end

# example.feature
Feature: Example

  @myfocustag
  Scenario: Only run this one
  ...

次に、cucumber-guardは、これらのシナリオをcucumberコマンドに渡す前にフィルタリングします。これらのタグを削除すると、デフォルトの動作になります(シナリオを実行しないのではなく、すべてのシナリオを実行します)。

于 2013-06-04T18:41:37.033 に答える
0

理論的には、キュウリのプロファイルを使用してこの作業を行うことは可能であるはずですが、私はを使用する必要があることがわかりましたguardfile

元のガードファイル

guard 'cucumber', :cli => "--drb" do
  watch(%r{^features/.+\.feature$})
  ...
end

変更されたガードファイル

guard 'cucumber', :cli => "--drb --tags @now" do
  watch(%r{^features/.+\.feature$})
  ...
end
于 2012-02-10T11:19:16.717 に答える
0

ここで、Guardが常に私のように@wipを実行するようにしたい場合は、次のように追加します。

cucumber.yml

guard: --format pretty --tags @wip

ガードファイル

guard 'cucumber', :command_prefix => 'spring', :cli => '--profile guard', :bundler => false do
  # your watches
end

監視対象ファイルが変更されると、@ wipのみが実行されますがcucumber、ガードコンソールに入力した場合も実行されます。

于 2015-06-25T21:04:08.517 に答える