mix test --listen-on-stdinについて
こんばんわ。Elixir v1.3.2がリリースされましたね。
with
のelse
でwhen
が使えるようになったのが目玉っぽいのですが、mix test
に--listen-on-stdin
というオプションが入ったことに良さがあるのではないでしょうか。このオプションが入ったプルリクがこれ。
参照されてるissueがこれ。
どうやらファイルを監視して、かつ--stale
と組み合わせることで、落ちたテストだけ自動でやりなおすという狙いがあるようで、issueに貼られていたUsefulなgistに書いてある
fswatch lib/ test/ | MIX_ENV=test mix do test --stale, run --no-halt -e "IO.gets(:stdio, ''); IO.puts 'Restarting...'; :init.restart()"
というmix do
の力のパワーの真髄を見せつけられたようなやつが
fswatch lib/ test/ | mix test --stale --listen-on-stdin
で出来るようになると。
所感
個人的にこれのいいなーと思うところは、Unixの哲学というか、標準出力に何か吐き出してくれるやつならfswatch
でも何でもトリガーにできるというところ。じゃあ何が便利よと言われると、役に立ちそうなアイデアはパッと出てこなくて、こういうよくわかんないのしか浮かばないのですが。ピタゴラ装置の終端にできるとおもしろいかも。
mix phoenix.server | mix test --listen-on-stdin