前置き 地味にこの記事が読まれ続けているみたいなのですが、内容がよい加減に古くて心苦しいので、もうちょっと現代的な内容にマイグレーションしたものを投稿しようと思います。当時と違ってQiitaにもよい記事増えているのに今更感あるのですが、あの記事に辿りついてしまった人のため……という感じで書いておきます。 大前提 PHPUnitを使ったからといって、どんなソースコードもテストできる訳ではありません。テストをし易いようにクラスを設計している必要があります。また、そのように設計していてもUnitテストに入れることの出来ない箇所は出てきます。Unitテストに入れることの出来ない箇所は出来ないと割り切らなければなりません。むしろ、どれだけのコードをUnitテストに入れることが出来るか? というのが設計者の腕の見せどころになるでしょう。極論を言うと 「どんなクラスでも疎結合に実装していなければならない
2021年2月26日追記 最近は PCOV が良いらしいです。 PCOV は PHPUnit8 以降の対応なので、この記事は PHPUnit8 未満の方向けです。 2021年8月2日追記 が、phpdbg と比べてカバレッジが下がってしまう場合もあるようです ユニットテストの評価に、コードカバレッジを使用することは、よくあると思います。 従来より、 PHPUnit にはコードカバレッジ解析機能が実装されており、 HTML をはじめとするいくつかの形式で、レポートを出力可能です。 PHP5 では、 xdebug が提供するステートメントカバレッジ機能が利用されてきましたが、これが大変遅く、1100 Assertions ほどの EC-CUBE3 のカバレッジを出力するまで、2時間以上かかります。 しかも、速い CPU にしても大して速くならないのです。 Windows 環境では特に遅くなるら
ネットの検索結果でチラチラとは見ていたのですが、この度初めて自分でもDBUnitを使ってみました。ネット上のサンプルコードをほとんどそのまま実行しただけですが、私の手元でも簡単にユニットテスト用のDBとデータを準備することができました。 従来、H2 DatabaseはRunScriptで初期化用のスキーマを流し込んでいたのですが、これならJDBCドライバを選ばない気がします。 ※ 他のJDBCドライバでH2 DatabaseのINIT=RunScript相当の機能が可能なのか知りません。 ##環境 DBUnit 2.5.1 JUnit 4.12 ユニットテストのコード(パクリですが) 以下のような感じです。Excelファイルもデータソースとして使える点は、仕事でプログラムを作る人にとってかなりのアドバンテージな気がします。 import java.io.File; import org.j
参考 やむにやまれない理由で、ローカル環境またはローカルの仮想マシン内に自分だけの開発環境を構築できない場合があります。 でもリモートデバッグはやりたい...ヨダレが出るほどに...var_dumpとか書きたくないし! 想定環境 今回の想定は、↓の図のような感じで開発してるものとします。 ポイントは、 開発者のローカル端末でソースコード編集が行われず、開発サーバ内のソースコードをみんなで編集している 開発サーバが、開発者ローカル端末と 同サブネットに存在しない。 開発サーバが同サブネットに存在する場合は... 同サブネットに存在する場合は、そもそもxdebugの設定で解決する(はず)と思います。 xdebug.remote_connect_backの設定がそれです。 remote_connect_backは、$_SERVER['REMOTE_ADDR']によってデバッグ待機中のマシンを確認
Android や Java EE で開発していたりすると、デバッグ実行によくお世話になる。ステップ実行で 1 つ 1 つ追っていくと、それでバグの原因が見つかったりするので重宝するものだ。 PHP では Xdebug を使用して同様の事が出来るのだが、設定が面倒だったり、Java ほど使い勝手が良くなかったりするので 結局 var_dump や print_r で問題箇所で変数の内容を出力する事でデバッグしてしまう。しかもそれで殆ど何とかなってしまう。 とはいえ、折角なので PhpStorm でステップ実行してみる。以下自分用メモ。 前提 最近は開発環境といってもデスクトップ OS (Windows / OS X / Linux) に直接 (W,M,L) AMP 環境を構築する事は少なくなってきた。 VM 上に Linux の環境を構築した方がスナップショットを撮っておけば失敗してもすぐ
NetBeansでのxdebug設定方法 開発環境:Windows7 php5.5.19 自分の環境にあったxdebug.dllを探す方法 下記ソースでphpinfoを表示する。 <?php phpinfo() php?> http://xdebug.org/wizard.phpへ出力されたphpinfoをコピーして貼り付け、実行すると下記画面のようになる。 出力画面のdllダウンロードリンクからダウンロードして、記載の場所へdllを格納する。 php.iniファイルを変更する。 php.iniファイルの変更箇所(下記項目を追加した) [XDebug] zend_extension="C:\php55\ext\php_xdebug-2.2.7-5.5-vc11-x86_64.dll" xdebug.remote_enable=1 xdebug.remote_host="127.0.0.1"
FuelphpのViewテストを行うためにphpunit用のテストケースのベースクラスを書きました. 親クラス FuelPHPのコントローラユニットテストで認証,Response::redirect(), Request::is_hmvc()を正しく機能させテストを動かす.Aspect Mock使用で作成したコントローラ用のテストケースControllerTestcaseを継承しているので,そちらもご覧ください. ControllerTestcase::setup()で行っている,Fieldsetインスタンスのクリア,Requestインスタンスクリア,Assetのファイル検索対応がViewテストにも必要だったので,継承して使っています. Viewテスト - URLチェック controller/action構造の変更などに伴うリンク切れを検出したかったので, AspectMockでHtml
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く