2016-04-27 10 views
1

ファクトリを変更するたびに、すべての工場をリントするために、Guardfile(RSpecとFactoryGirlを含むRailsアプリケーション内)に何を置く必要がありますか?すぐにガードと工場の女の子と工場をリントするには?

私は、この質問に応じてすべてのモデル仕様を実行することが可能であることを知っています:Using guard-rspec with factory-girl-railsしかし、私はそれらすべてを駄目にしたいです。

私はGuardfileでこれを実行しようとしましたが、それは十分ではなかった。事前に

watch(%r{^spec/factories/(.+)\.rb$}) { 
    FactoryGirl.lint 
} 

感謝を。

答えて

1

あなたのやりたいことははっきりしていますが、そのようには機能しません。

Guardは、アプリケーション内では実行されません。プロセスとしてRSpecを実行します。 FactoryGirl.lintはGuard内で呼び出され、RSpecプロセス内では呼び出されません(これはあなたが望むものです)。

「トリック」ここでは、あなたが行うことができますので、毛羽立ちを除いて何もしない「偽」specファイルを作成するには、次のようになります。

guard :rspec do 
    watch(%r{^spec/factories/(.+)\.rb$}) { 'spec/linting_spec.rb' } 
end 

はしくみはこうだ:

  1. たび工場ファイルが変更されると、GuardはGuard :: RSpecを 'spec/linting_spec.rb'(または名前をつけて)と一緒に起動します。
  2. Guard :: RSpecはrspec spec/linting_spec.rbを呼び出します。

あなたが望むようにrspec spec/linting_spec.rbが機能する限り、上記のようにガードすることができます。

spec/linting_spec.rbは、モデルに対してただ1つの "偽の" RSpecテストを持つことができます。ちょうど十分な時間がかかります。

あなたはちょうど糸を引くだけで、どんなモデルテストも実行しません。

+0

私は 'linting_spec.rb'の中にlintingするためのコード(' FactoryGirl.lint')を直接入れました。ありがとうございました。 –

関連する問題