Playframework 2.1.1 ビルドとテストを非同期に
Playframework でそれなりにプロジェクトの規模が大きくなると無視できなくなるのがビルド時間、、、。
特にUT走らせるとなると、ビルド時間が指数関数的に増えること請け合いです。
しかもコンパイル中はソースの改修もなにもできないという、、、、。
後IDEで InteliJ 使ってると、class とか生成された scala ファイルが増えると、泣きたくなるくらい重くなります。
これらを解決するため、私はたまにプロジェクトルートに下記のようなシェルを入れます。
#!/bin/bash
echo "Clean current"
play clean
echo "Copy to home tmp"
current_dir=`pwd`
dir_name=`basename $current_dir`
rsync -ru ${current_dir} ~/tmp/
echo "clean and testing"
result=${current_dir}/result.txt
cd ~/tmp/
cd $dir_name
play -Dsbt.log.noformat=true clean test > $result着色してるのはPlayではなくてSBTなんですよねー。
まぁこれでテストは他のディレクトリで実行されてますので、プロジェクトディレクトリは好きに編集ができると。
rsync のコストを下げるために「play clean」してるので InteliJ idea にも優しいです。
実行結果は result.txt に書いてある。
怖いことにデータが残ってると、後から開いたときにまともに読めなくなるのです