複数のプロセスが相互に連携して動くシステムのテストを自動化したい。 普通に書くとプロセスを起動したあと終了するまで待ってしまうので、複数のプロセスを同時に起動できなくて困ります。&を付けてバックグラウンドで起動させると、後で終了させたとき、まず ps aux | grepしてPIDを調べて、シグナルを飛ばして、しばらくポーリングして本当に終了するまで待つ、なんてことになって面倒です。 それから起動してからしばらくは初期化処理が走っているので、標準出力に「started」と表示されるまで待ちたかったりします。 そのあたりをうまく扱うためのライブラリを書いてみました。↓こんな感じで自動化できます。 #!/usr/bin/env ruby require 'chukan' include Chukan srv = spawn("server -arg1 -arg2") # 'server' コマ