2011/10/29

App::Prove::RunScriptsで快適テスト生活

App::Prove::RunScriptsで快適テスト生活

公開場所

開発動機

WebアプリケーションのデータストアにMySQLを利用している場合、テストでTest::mysqldを使っていると思います。
しかし、各テストファイル毎にmysqldを立ち上げていると、テストファイルが増加した際に、mysqld立ち上げのオーバーヘッドが問題になります。
これを解消すべく作成しました。

既存の解決策

  1. にひりずむ::しんぷる make test で Test::mysqld を永続化させる方法
  2. Craftworks Tech Blog - Branch Test::mysqld を別ウィンドウで立ち上げたら開発時の prove が快適過ぎる件

問題点

  1. Module::Install::TestTargetは色々と便利なこともできるが、単純にテスト実行前にTest::mysqldを叩くだけには大げさ過ぎる
  2. 裏で先に立ち上げておくのは正直めんどうだし、忘れそう

こんな感じの問題点と普段の開発中はmake testなんて叩かないでproveをメインに使っているということもあり、proveライクに使えるコマンドが欲しいということでカッとなって作りました。

インストール

    $ cpanm App::Prove::RunScripts

使い方

上記コマンドでインストールされたprove_runscriptsコマンドを使用します。proveの薄いwrapperで、before/afterオプションが新規に追加されています。
後は実行したいスクリプトを指定するだけです。複数指定もできます。
xaicronさんの記事にあるsetup_mysqld.plをそのまま利用できると思います。

    $ prove_runscripts --bofore t/scripts/setup_mysqld.pl --state=save -lr t/

0 件のコメント:

コメントを投稿