ファイルの変更時にRails Railsテストを自動化する簡単な方法


私の失望に対して、私は今日Ruby、Capelandとトマスによるレール6でアジャイルウェブ開発で単位テストを通過している間、Rails CLIが--watchオプションで出荷しないとわかりました.
それは不足している機能のかなり不思議な部分のようです、そして、私はまだそれがCLIに組み込まれていない理由をまだ知りません、それで、私は文脈のために開始するために、posted a question in the Rails forumを始めます.どのように行くか見ましょう.

ジェストCLIは、箱からそれを持ちます


以前にテストを実行するためのjest cliを使っていたので、これを行うことができました.
$ jest --watchAll
... CLIハンドルを変更し、関連するテストを再実行するファイルを見ている.
しかし、最近、Railsを使用しなければならなかったので、これがRails CLIから欠落していた理由について説明しました.私は、「ファイルの変更に基づく適切なテストを実行する」ことは実際には非常に複雑であると理解しました.たとえば、私がメソッドを変更した場合、Watcherはテストランナーにどのテストを再実行するかをテストします.
しかし、それはこのポストの範囲の少し外です.私は、それのような何かの後の複雑さに頭のうなずきをする方法としてそれを持ってきました.

エンター


とにかく、私のデスクでTDD - ish(Test Drive Development)のワークフローを容易にする方法を考えて机に座っていたので、自動テストランナーの有用性の50 %が、特定のテストファイルですべてのテストを再実行することから来ているのかもしれません.
そのために、私は今日、entr(MacOS)でインストールできる、homebrewという素敵なコマンドラインパッケージがあることを知りました.
ここでは、/testディレクトリ内の任意のファイルの変更に基づいてRails Railsテストを実行しました.
$ cd rails-app
$ find ./test -name '*.rb' | entr -s 'rails test'
任意のテストファイルが再保存されるたびに、これはすべてのテストを再実行します.偉大な最初のステップ!

そこには宝石がある


ちょうど私が言及したものがちょうど同じことを成し遂げる多くの方法のうちの1つであるという速いメモ.実際に、私が書いたものは、あなたが自分自身ではなく、チームで誰でも利用できるようにする必要があるならば、より便利です.
video宝石を使用してファイルを見てテストを実行する方法については、2011年に遡ってhere年に遡る.テストランナーオートメーションをチームに実装したいなら、おそらくこれはより良いアプローチでしょう.少し異なる実装を持つが、同様の機能性を提供する他の宝石の負荷があります.