<?php class PickSlowListener extends PHPUnit_Framework_BaseTestListener { private $test_start_time; private $test_time_results = array(); private $rank_limit; public function __construct($rank_limit) { $this->rank_limit = $rank_limit; } public function startTestSuite(PHPUnit_Framework_TestSuite $suite) { $this->test_start_time = microtime(true); } public function endTestSuite(PHPUnit_Framework_Tes
Sorry, but the current page is not working right now. Thank you!
Jenkins、いいですよね。オペレーションの自動化には美があります。前回の記事ではGitによるデプロイ自動化を行いましたが、その時点で既にユニットテストの自動化は想定していたので、今回はそれを実現してみます。 これによって、機能を実装してプッシュする度に自動でデプロイされ、その過程でテストが自動で行われるので、特に通知がなければ動作が保証されるようになります。実際に本番環境への適用の際には、もう少ししっかりテストをする必要があるのかもしれませんが、開発環境レベルではテストを意識的に実施せずとも気兼ねなく開発を進めることができます。 ユニットテストにはおなじみのPHPUnitを使います。なお、前回のJenkins導入やデプロイ自動化の話はこちらの記事でまとめてありますのでよろしければどうぞ。 ユニットテストとテスト自動化 従来、プログラムのテストはミスの許されない商用プロダクトでは欠かせな
結論:oilでファイル指定でユニットテストを行う方法 php oil test --file=fuel/app/tests/********.php↑このコマンドでファイル指定のユニットテストが実行できます。 結論を見つけるまでの過程 読み飛ばし可…oilのhelpのみかたとか実態の場所とかのメモです。 phpunit 生で使っている時に使っている方法(file pathを単純に引数で渡す)で動かなかった… php oil help 実行 ********** Custom Oil ********** Usage: php oil [cell|console|generate|package|refine|help|server|test] Runtime options: -f, [--force] # Overwrite files that already exist -s, [-
PHPUnitの設定 続いて、PHPUnitからAspectMockを使うための設定をします。まず、backupGlobalsを必ずfalseにします。 phpunit.xml <phpunit bootstrap="bootstrap.php" backupGlobals="false"> そして、tearDown()メソッドで登録したテストダブルを削除するようにします。 TestCase <?php use AspectMock\Test as test; abstract class TestCase extends \PHPUnit_Framework_TestCase { protected function tearDown() { test::clean(); // 登録したテストダブルを削除 } } AspectMockの使い方 それでは、AspectMockの使い方を見て
phpenvでインストールしたPHPを使用していて、 PhpStorm経由で「oil test」を実行していたら、 PATHの関係で、oilを実行するPHPとPHPUnitを実行するPHPが異なってしまう場合があった。 ・oilの実行PHP /Users/Uchiko/.phpenv/versions/5.5.15/bin/php ・phpunitの実行PHP /usr/bin/php のような感じで。 対策として、 oil.php内のphpunit.binary_pathで、 oilで実行しているPHPのパスをPHP_BINARYで取得し、 phpunitの実行PHPを明示的に指定することによって、 この問題を回避した。
fuelphpでユニットテストを実行すると、No tests found in class "Fuel\Core\TestCase"のwarningが発生する。 原因はphpunit.xmlの中でテストケースを指定する際にワイルドカード(*)を使用している場合(デフォルトでそう)、phpunitがPHPUnit_Framework_TestCaseを継承しているクラスを検索するため、この警告が発生する。 いろいろ調べたが解決策は以下の2つ。 1) ファイル名と中のクラス名を完全に一致させる(大文字小文字も含め) これはないでしょう。ほとんどの場合ファイル名は小文字で統一しているはず(かな)。 2) 直接PHPUnit_Framework_TestCaseを継承する。 Fuel/Core/TestCaseの中身を見てみよう。 namespace Fuel\Core; /** * A Fuel
最近の開発ではローカルマシン上ではなく、Vagrant等を利用しての仮想環境を用いた開発が主流となってきました。そこで、NetBeansからテストをリモートマシン上で実行し、結果を取得するスクリプトを紹介します。 ※NetBeans 8.0で動作確認を行っています。7.4では動作しません。 リモートマシンでphpunitを実行するには、カスタムphpunitスクリプトを利用します。 次のスクリプトを、プロジェクトディレクトリ内のnbprojectディレクトリまたは、testsディレクトリに設置して適宜変更します。また、実行権限を与えてください。(パーミッション755等) netbeans-remote-phpunit/phpunit-remote.sh at master 変更箇所は、REMOTE_PKEY、REMOTE_SERVER、REMOTE_ROOT、REMOTE_PHPUNIT、
SpeedTrap is a PHPUnit Listener that reports on slow-running tests in your PHPUnit test suite console output. Many factors affect test execution time. A test not properly isolated from variable latency (database, network, etc.) and even basic load on your test machine will cause test times to fluctuate. SpeedTrap helps you identify slow tests but cannot tell you why those tests are slow. For that
まえがき かなり久しぶりのブログ更新になりますが、私は元気です。 忙しくてなかなか技術をインプットすることもできなくて、ブログ書く時間なんて全然ありませんでした。。 てなわけで、今回はFuelPHPでPHPUnitをJenkinsで実行できるようにするまでのメモをしておこうと思います。 開発環境 FuelPHP 1.7 ローカル環境にFuelPHPのプロジェクトを作成する まずはじめに、ローカル環境でFuelPHPのプロジェクトを作成していきます。oilをインストールしてoilコマンドでプロジェクトをバシッと作成していきます oilのインストール curl get.fuelphp.com/oil | sh FuelPHPのプロジェクト作成 oil create fuelphp_sample_blog こんなかんじで『fuelphp_sample_blog』という、サンプルプロジェクトを作成
初登場の @tototoshi です。今回は pixiv のユニットテストで利用しているモックライブラリの紹介をします。 ここ2ヶ月くらいの間、レガシー化したとあるモジュールのリファクタリングに取り組んでいました。 リファクタリングにはテストコードが必須です。しかし今ではすっかりテストを書く文化が根付いている pixiv にもテストコードがない時代がありました。リファクタリングが必要な古いコードにはテストコードがないことが多く、そういったコードに新たにテストをつけていくのはなかなか大変です。テストの概念のないプロジェクトはテスト可能なように設計・実装されていません。テストを書くのが大変なのではなく、書けるようにするまでが大変です。 特にやっかいだったのは DB を参照したりするようなスタティックメソッドを使ったメソッドのテストでした。以下のようなスタティックな Dao を使用した Serv
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く