7

ガードジェムを使用しています

開発のある時点で、プロジェクト全体ではなく、特定のファイルまたは複数のファイルのみを追跡する必要があります。

特定のファイルを一時的に追跡する便利な方法はありますか?

ガードファイルを変更することでできることは知っていますが、それがきちんとした解決策だとは思いません。

4

4 に答える 4

13

focus: true実際には、itたとえばステートメントで使用できます。

Spec ファイル内。

it "needs to focus on this!", focus: true do
  #test written here.
end

次に、spec/spec_helper に config オプションを追加する必要があります。

RSpec.configure do |config| 
  config.treat_symbols_as_metadata_keys_with_true_values = true  
  config.filter_run :focus => true  
  config.run_all_when_everything_filtered = true 
end

次に、Guard は自動的にフォーカスされたテストを選択し、それのみを実行します。また、config.run_all_when_everything_filtered = true名前が誤解を招くように聞こえる場合でも、フィルタリングされたものがない場合はすべてのテストを実行するようガードに指示します。

Ryan Bate の rails キャストは、 GuardSporkで非常に役立つことがわかりました。

于 2013-02-07T18:00:20.753 に答える
3

おそらくグループはあなたのために働くでしょうか?

# In your Guardfile
group :focus do
  guard :ruby do
    watch('file_to_focus_on.rb')
  end
end

# Run it with
guard -g focus

Guardfile を変更したくないとおっしゃっていたのは承知していますが、グループの追加は、プロジェクトの監視からフォーカス セットに切り替えて戻るたびにではなく、一度だけ行う必要があります。

もちろん、注目する必要があるファイルのセットが変更された場合は、引数を変更する必要がありますwatch(さらにウォッチャーを追加することもできます)。しかし、どこかに指定する必要があると思います。どれか。

あるいは、Guardfile にフォーカスするファイルを本当にリストしたくない場合は、上記のDavid が提案したように、別のファイルまたは環境変数からファイルのリストで:focusグループを読み取ることができます。Guardfile は単純な ruby​​ (ガード DSL にアクセスできる) であるため、ファイルまたは ENV 変数を簡単に読み取ることができます。

于 2013-02-03T14:48:18.033 に答える
1

Guard-rspecを使用する場合。あなたはこれを行うことができます。

Guardfileのrspec ブロックを次のように変更します。

guard 'rspec', :cli => ENV['RSPEC_e'].nil? ? "": "-e #{ENV['RSPEC_e']}") do
  # ... regular rspec-rails stuff goes here ...
end

ガードを開始します。そして前にRSPEC_eを設定します。そのようです...

RSPEC_e=here guard

その後、何かを変更するたびに、説明に "here" (RSPEC_e で設定) というテキストが含まれるスペックのみが再実行されます。

于 2013-02-06T12:18:06.323 に答える
0

ガードファイルを永続的に変更して、選択した環境変数をチェックし、存在する場合は異なる動作をすることができます。たとえば、変数ENV['FILE']にアクセスします。FILE=foo.rb次に、いつでもガードを実行するためのコマンドを前に付けることができます。

于 2013-02-01T16:25:22.400 に答える