###前提・実現したいこと
VagrantのCentOS6環境下で、CakePHP(2.7)でvim(8.0)のquickrun.vimプラグインを使って、気軽にユニットテストを実行できるようにしたい。
前提として、CakePHPが提供しているユニットテスト機能を使うことは禁止されており、プロジェクトディレクトリとは別の場所にテスト用のファイル群やPHPUnitを隔離して配置し、CakePHPのコードを読みに行くだけにしたい(DBへのアクセスはリードのみ)。
###発生している問題
CakePHP(Webフレームワークの多く)はwebroot/index.phpを叩くことでルーティングされて実行内容が決まるため、特定のコントローラやモデルだけで単体テストができない。
###試したこと
PHPUnitのテストコードsetUp()メソッドに、モデルをインスタンスとしてデータの読み書きを試そうとした(PHPUnitの内部ではCakephpの文法が使えないため失敗)
Codeception+PhantomJSでテストするようにした(テストできるが遅い。1機能のテストをするには大げさ)
上記のような条件において、CakePHPでユニットテストをする方法、あるいは設定がございましたらご教授ください。
###追記・実行したコマンド
phpunitのコマンドはcodeceptionで行っているため、以下のコマンドになります
vendor/bin/codecept run unit AaaTest
また、vimはquickrun.vimプラグインを使っているため、<leader>rで実行しているためコマンドはございませんが、設定は以下となります。
let g:quickrun_config = get(g:, 'quickrun_config', {})
let g:quickrun_config._ = {
\ 'runner' : 'vimproc',
\ 'runner/vimproc/updatetime' : 60,
\ 'outputter' : 'error',
\ 'outputter/error/error' : 'quickfix',
\ 'outputter/error/success' : 'buffer',
\ 'outputter/buffer/split' : ':rightbelow 8sp',
\ 'outputter/buffer/into' : 1,
\ 'outputter/buffer/close_on_empty' : 1,
\ "ruby/utf8" : {
\ "cmdopt" : "-Ku",
\ "type" : "ruby"
\ },
\ }
augroup QuickRunPHPUnit
autocmd!
autocmd BufWinEnter,BufNewFile *Test.php set filetype=phpunit.php
augroup END
let g:quickrun_config['phpunit.php'] = {}
let g:quickrun_config['phpunit.php']['outputter'] = 'phpunit'
let g:quickrun_config['phpunit.php']['command'] = '/varant/testingDir/vendor/bin/phpunit'
let g:quickrun_config['phpunit.php']['exec'] = '%c %o %s'
回答1件
あなたの回答
tips
プレビュー