2017-12-19 8 views
0

デフォルトではrails testはシステムテストを実行せず、システムテストを実行するにはrails test:systemを呼び出す必要があります。システムのテストを含むGuardはRails 5システムテストを実行するためにどのように設定しますか?

  1. 実行すべてのテスト、:1はガードを使用していることを考えると、Guardfileガードますが、それに加えて、適切とは何か。
  2. 変更すると、適切なシステムテストを実行します。

私のような何かを試してみました:

guard :minitest, spring: true do 
    # ... 
    watch(%r{^test/system\/?(.*)_test\.rb$}) { 'test' } 
    # ... 
end 

をしかし、私はガードの設定で教育を受けていないですようです。

答えて

1

レールは、システムテストがrails testで実行されることを特に除外しました。なぜなら、それらはずっと遅いからです。推奨ワークフローは、作業中(つまりガード中)に素早い単体テストを実行し、機能を確認する準備ができたらシステムテストを実行することです。

あなたはとにかくこれをやってみたかった場合は、新しいガードプラグイン(guard :yourthing { ... })を追加するか、またはあなたは、単にも熊手を使ってrails test:systemを含めるようにrails testコマンドを設定することができますいずれかに必要があるでしょう:

# Rakefile 
Rake::Task["test"].enhance ["test:system"] 

この意志rakerake test、およびrake test:runは、Guardからの実行時も含めて、すべてシステムテストを実行します。

+0

ありがとう、@coreyward。私はRails 5.1.4を使用しています.Rakefileへの追加は 'rake'、' rake test'、 'rails test'には影響しません。正確な答えを編集します。 – ybakos