mmag

ハマったことメモなど

mix test --listen-on-stdinについて

こんばんわ。Elixir v1.3.2がリリースされましたね。

github.com

withelsewhenが使えるようになったのが目玉っぽいのですが、mix test--listen-on-stdinというオプションが入ったことに良さがあるのではないでしょうか。このオプションが入ったプルリクがこれ。

github.com

参照されてるissueがこれ。

github.com

どうやらファイルを監視して、かつ--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