karakaram-blog

VimからPHPUnitを実行する環境を整える

 ツイート 15  シェア 0  Google+1 0  Hatena 8

quickrun-phpunit

VimからPHPUnitを実行する方法をまとめました。PHPUnitをquickrunで非同期実行し、結果にグリーンレッドの色をつけるまでを紹介します。

動作確認環境

  • Vim7.3
  • quickrun0.5.1
  • vimproc5.3
  • PHP5.3.9
  • PHPUnit3.6.7

目次

  1. PHPUnitのインストール
  2. quickrunのインストール
  3. vimprocのインストール
  4. quickrunの設定
  5. テスト結果にグリーン、レッドの色をつける

PHPUnitのインストール

私は下記を参考にPHPUnitをインストールしました。
http://docs.symfony.gr.jp/symfony2/contributing/code/tests.html

PHPのバージョンがPHPUnitに対応しており、PEARがインストールされていればうまくいくと思います。PHPUnitがうまくインストールできない場合はPEARを再インストールしましょう。

コマンドプロンプトからphpunit –versionと入力してバージョン情報が表示されればOKです。

quickrunのインストール

下記よりバージョン0.5.1をダウンロードします。
https://github.com/thinca/vim-quickrun/tags

私はプラグイン管理にPathogenを使用しています。
ダウンロードして解凍したフォルダを下記に配置します。

  • Windowsの場合は$HOME/vimfiles/bundle/
  • Mac,Linuxの場合は$HOME/.vim/bundle/

vimprocのインストール

vimprocをインストールするとquickrunを非同期に実行することができるようになり、テスト実行中にVimがフリーズすることがなくなります。

vimprocのインストールはこちらの記事か、本体付属のマニュアルをご確認ください。

quickrunの設定

.vimrcです。

augroup QuickRunPHPUnit
	autocmd!
	autocmd BufWinEnter,BufNewFile *Test.php set filetype=phpunit
augroup END

let g:quickrun_config = {}
let g:quickrun_config['_'] = {}
let g:quickrun_config['_']['runner'] = 'vimproc'
let g:quickrun_config['_']['runner/vimproc/updatetime'] = 100

let g:quickrun_config['phpunit'] = {}
let g:quickrun_config['phpunit']['outputter/buffer/split'] = 'vertical 35'
let g:quickrun_config['phpunit']['command'] = 'phpunit'
let g:quickrun_config['phpunit']['cmdopt'] = ''
let g:quickrun_config['phpunit']['exec'] = '%c %o %s'

runnerにvimprocを設定

phpunitの実行中にVimがフリーズしなくなります。Vimがフリーズしないのは大きな利点ですので、ぜひvimprocも合わせて導入しましょう。

phpunitという新規filetypeを定義

*Test.phpの名前のファイルをphpunitというfiletypeに設定しています。PHPUnitのテストコードが書かれたファイルの名前はHogeClassTest.phpのように、Test.phpで終わらせる必要があります。

今回は.vimrcにfiletypeを追加する設定を書きましたが、新規のfiletypeを設定する方法は他にもいくつかあります。詳細は :help new-filetype をご確認ください。ちなみに私はftdetectを使用しています。

filetypeがphpunitの時のquickrunの動作を設定

quickrunのcommandをphpunitにします。オプションは必要に応じて設定してください。PHPUnitの結果は、常に右に、できるだけ小さく出したかったのでそのように設定しています。

quickrunからphpunitを実行する方法

PHPUnitで書かれたテストコードを開いて <Leader>r を入力することで実行できます。

テスト結果にグリーン、レッドの色をつける

quickrun経由でphpunitを実行した場合、–colorsオプションをつけてもOK, FAILURESの文字にグリーン、レッドの色がつきません。色がついていないと楽しくありませんし、フィードバックを早く得るためにも、結果に色がつくようにします。

テスト結果に色をつけるには、quickrunバッファ用のシンタックスを作成することで実現できました。シンタックスファイルの作成・記述方法は :help syntax :help usr_44 :help highlight あたりを参考にしました。

quickrun用のシンタックスファイルは $HOME/.vim/syntax/quickrun.vim に記述します。

以下、シンタックスファイルです。

if exists("b:current_syntax")
  finish
endif

if !exists("main_syntax")
  let main_syntax = 'quickrun'
endif

"大文字と小文字を区別する
syntax case match

"正規表現で一致
syntax match phpUnitOk /OK.*/
syntax match phpUnitFailures /FAILURES.*/

"group-nameをハイライトの指定と関連付け
highlight phpUnitOk term=reverse ctermbg=2 guibg=DarkGreen
highlight phpUnitFailures term=reverse ctermbg=4 guibg=DarkRed

"unlet b:current_syntax
let b:current_syntax = 'quickrun'

if main_syntax == 'quickrun'
  unlet main_syntax
endif

関連する記事

 ツイート 15  シェア 0  Google+1 0  Hatena 8