読者です 読者をやめる 読者になる 読者になる

謎言語使いの徒然

適当に気になった技術や言語を流すブログ。

Playframework 2.1.1 ビルドとテストを非同期に

Tips Scala Playframework

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 に書いてある。
怖いことにデータが残ってると、後から開いたときにまともに読めなくなるのです