VimでDocTestを使ってTDDに挑戦してみる

kunitさんがDocTestのα版を公開されたので、早速試してみました。チュートリアルもしっかり書いて頂いていたので、すんなり入っていけました。これは良いですね〜。( ̄ー ̄) kunitさん、ご苦労様です。m(_ _)m

で、最近はすっかりVimでプログラミングするようになったので、どうせならポチっとボタン押すと、今開いてるソースファイルのテストを実行できるようしたいのが人情ってモノ…。

という事で、Vimのキーマッピングを使って、Ctrl+Tを押すとその場でテストが実行できるようにしてみたので、やり方のメモを…。

まずは、kunitさんのチュートリアルを参考に、DocTestを準備します。私の場合、インストール先は、~/DocTestにしました。(インストール先はどこでもいいので、お好きなように…。)

続いて、Vimの定義ファイルにキーマッピングを書きます。デフォルトであれば、ホームディレクトリ配下の.vimrcファイル、PHP用の.vimファイルを使ってる場合は、~/.vim/ftplugin/php.vimに書くのがいいと思います。

map <C-T> :!/usr/local/lib/php/bin/php ~/DocTest/doctest.php `pwd`<CR>

で、呼び出される側のdoctest.phpファイルを作ります。

<?php
define('HOME','/home/tom/DocTest/');
error_reporting(E_ALL|E_STRICT);
require_once HOME . 'src/Maple/DocTest.php';

$params = array(
    'compileDir' => HOME . 'tests_c/',
);
$testDir = $argv[1] . '/';

Maple_DocTest::singleton($params)->run($testDir);
?>

これで準備完了! DocTestの書かれたソースファイルをVimで編集している時にCtrl+Tを押すと、カレントディレクトリに対してDocTestが実行されます。

今時は、Eclipse使ってバリバリ開発って方が多いような気がするので、こんなTips書いても非常にニッチで役に立たない気がしなくもないですが(^^;、自分がストレスなく開発できる環境を整えるのって大切な事ですよね。(と自分に言い聞かせてみる。)

さ〜て、早速何か軽いものを作ってみようかなと。