公開日 2019.7.13更新日 2019.7.22カテゴリ:Laravelタグ:PHP,Laravel,Factory,PHPUnit,Mockery
@HIROCASTさんが書いた記事「コードやテストを保存したら自動でPHPUnitを実行しGrowlへ通知する環境」に感銘を受けました。 僕が使用しているUbuntuでも同じように通知する環境を用意します。 まずUbuntuでGrowlのように通知を表示してくれるnotify-sendをインストールします。 sudo apt-get install libnotify-bin次にhttps://github.com/mynyml/watchrを参考にしつつwatchrをインストールします。 sudo gem install watchr sudo gem install revこのままだとwatchrにパスが通っていないので、.bashrcなどにパスを追加するように設定しておきます。 PATH="/var/lib/gems/1.8/bin:$PATH"設定した内容を反映させて、watchr
2016-02-19 追記 Laravel5.4がリリースされテスト周りの書き方が大きく変更されています。 この記事の内容だとLaravel5.4では動作させる事が出来ません。 時間が出来次第、この記事にLaravel5.4でも動作するように編集します。 (参考) - https://laravel.com/docs/5.4/testing - http://qiita.com/komatzz/items/1679373c86c252c5f49f この記事で伝えたい事 テストコードを書く事により得られるメリット テストコードを書く時上で必要な考え方 REST APIでの具体的なテストコードの書き方 仕事でLaravel 5.3を触る機会があったので今回のサンプルではLaravel 5.3を利用します。 とはいえテストコードの基本的な考え方は他の言語やフレームワークでもほぼ同じですので、他の
remiのrpmパッケージを使ってインストールを進めていく。 前提として、CentOSにはPHP5.4など古いバージョンがインストールされていない想定です。 epelとremiのリポジトリをインストール リポジトリをインストールします。 ※URLはリンク切れしていないか確認しましょう。 $ sudo rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/7/x86_64/e/epel-release-7-5.noarch.rpm $ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm PHP5.6のインストール yumからPHP5.6をインストール $ sudo yum install --enablerepo=remi --enablerepo
Previously, we demonstrated using Selenium with PHPUnit and used a user subscription form example throughout the article. In this one, we are going to explore Facebook’s webdriver package for emulating a browser. It is recommended you go through the previous article first, as it covers some basic concepts mentioned in this one, and sets up the sample application for you. Let’s get started. Faceboo
CakePHPでもテスト!テスト!テスト! テストドリブンと行きたいところですが、既にコード書いちゃった~。なんて興が乗っちゃって気づいたらかなり書き進んでしまったという事はプログラマあるあるだと思いますが、今から一からテストケース書くのって途方に暮れる事になりますよね。 CakePHP2系はPHPUnitを利用しているようなので、phpunit-skelgenが使えそうですが、extends周りのしがらみで、思ったように動いてくれません。一からコードを書くことなんてありえないCakePHPでは、AppControllerクラスを継承していて当たり前、AppModelクラスを継承していて当たり前。 そもそも、CakePHPのフレームワークにはPHPunitが組み込まれていて、ちゃんと上の問題を解消した独自のテストケースクラスが用意されていますので、それを使います。 じゃあphpunit-s
どんなにすぐれたプログラマも、間違いを犯します。 よいプログラマとそうでないプログラマの違いは、 よいプログラマはテストを行って間違いをできるだけ早く発見してしまうことです。 テストをするのが早ければ早いほど間違いを発見しやすくなり、 またそれを修正しやすくなります。 リリース直前までテストを先延ばしにしておくことが非常に問題であるのはこのためです。 そんなことをすると、すべてのエラーを発見しきることができず、 発見したエラーを修正することも非常に難しくなります。結局は、 トリアージを行ってどのエラーに対応するかを判断しなければならなくなります。 なぜならすべてのエラーを完全に修正することは不可能だからです。 PHPUnit を使用したテストは、全体としてはあなたがこれまでに行ってきたことと同じです。 ただ、そのやり方が違うだけです。それは、テスト つまりあなたのプログラムが期待通りにふる
Phing (PHing Is Not GNU make) は、Apache Ant をもとにしてつくられたプロジェクトビルドシステムです。 PHP の世界ではソースファイルをビルドしたりコンパイルしたりする必要はありません。 Phing が意図しているのは、パッケージの作成や配布、 そしてアプリケーションのテストを容易にすることです。 これらの作業を行うために、Phing には多くの独創的な操作モジュール ("タスク") が用意されており、 また独自のタスクを追加しやすいようにオブジェクト指向のモデルが提供されています。 Phing は PEAR インストーラでインストールできます。 コマンドラインで以下のように入力してください。 pear channel-discover pear.phing.info pear install phing/phing Phing ではシンプルな XM
タイトル長くてすみません。 PHP5.2.10+PHPUnit3.3.17で、setcookie関数を呼び出すクラスをテストすると、何ともつれないメッセージが。。。 $ phpunit AClassTest.php NULL PHPUnit 3.3.17 by Sebastian Bergmann. E..... Time: 3 seconds There was 1 error: 1) testNormal(AClassTest) Cannot modify header information - headers already sent by (output started at /usr/local/lib/php/PHPUnit/Util/Printer.php:96) /path/to/AClass.class.php:118 /path/to/AClass.class.php
Welcome! The WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. development team builds WordPress! Follow this site for general updates, status reports, and the occasional code debate. There’s lots of ways to contribute: Found a bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are cons
CakePHPでテストを試してみる の続き CakePHPのテストで各種assertを試してみる。 CakePHPのテストはPHPUnitを使ってるので、PHPUnitのメソッドがそのまま使えるみたい。 PHPUnit Manual http://phpunit.de/manual/3.7/ja/index.html よく使いそうなassertを試してみる。 app/Test/Case/SampleTest.php を下記のように編集する。 <?php class SampleTest extends CakeTestCase { /* * 基本的なassert */ public function testAssertNormal() { // 値が等しいか $this->assertEquals(100, 100); // 値が異なるか $this->assertNotEquals(1
概要 PHPer界隈からも割と敬遠されがちなPHPUNIT。 ただでさえ書くのが面倒なテストですが、僕は毎回PHPUnit_Framework_TestCaseが覚えられずにぐぐってしまいます・・・ DB関連やリクエスト関連のテストで良く使うのが、前処理・後処理等の下処理。 setUpとtearDownを主に使いますが、実は他にも色々な下処理やフック処理が出来たりします。 一応PHPUNITマニュアルにもあるのですが、特に僕含むPHPUNIT初心者の方の為にざっくりとまとめてみました。 メソッド名の手前に(static)がある場合、public static ~~でメソッドを追加しましょう。 一覧 各テストメソッド毎に実行 setUp 各テストメソッドの実行前に呼ばれるメソッド。 テストメソッド毎に同じ環境を用意し、メソッド内で動的に変化させて追従したい場合に便利。 (利用例)モック用オブ
There are two styles of testing: "black box" and "white box" styles. Black box testing focuses on the object's state; whereas, white box testing focuses on behavior. The two styles complement each other and can be combined to thoroughly test code. Mocking allows us to test behavior, and this tutorial combines the mocking concept with TDD to build an example class that uses several other components
CUI な Git ブラウザ tig を入れてみた (Born Too Late) [git][scm][tig] tig を使ってみた (do_akiの徒然想記) Twitter Trackbacks () とべとべ夏祭り2010電設部に参加した #tobesetu (key-cc) EC-CUBE LC_Page::sendRedirect()に引数を渡せない (弱小PHPerの憂鬱) [densetu][勉強会][学校]電設部IT勉強会#3やりますた(随時追記 (学内IT勉強会のススメ - atcorp) 電設部IT勉強会#3に参加したっ! (Curious) GLT #24 (懇親会)に乱入してきた! (Curious) GLT (Genesis Lightning Talks) Vol.24に参加しました (key-cc) GLT (Genesis Lightning Talks
PhpStorm 7 が PHPUnit 4 をサポートしていなかったので少し前まで PHPUnit は 3.7 を使っていましたが、9 月に PhpStorm 8 がリリースされ、PHPUnit 4 も動作するようになったので、そろそろ使っていこうかと思います。 なお、PhpStorm 7 で PHPUnit 4 が使えなかったのは次の理由だそうです。 PHPUnit マニュアル – 付録D アップグレード PHPUnit_Framework_TestListener インターフェイスに addRiskyTest() が追加されました。 PHPUnit_Framework_TestListener インターフェイスを実装するクラスは、新たにこのメソッドを実装する必要があります。 たとえば PHPStorm 7 で PHPUnit 4 が使えないのは、これが原因です。 PHPUnit 3.
How to install PEAR, PHPUnit, and XDebug on Mac OS X 10.6 Snow Leopard I use Mac OS X 10.6 Snow Leopard on my Apple Macbook — my primary web development machine. By default, Mac OS X 10.6 includes PHP 5.3.0 and Apache 2.2.11. Unfortunately, a default Mac OS X 10.6 install does not include more advanced tools for testing and debugging PHP applications. This tutorial demonstrates how to install PEAR
Insights, ideas and resources from our developers, marketers, researchers and designers.
PHPUnit のアサーションの実装は、PHPUnit\Framework\Assert およびそれを継承した PHPUnit\Framework\TestCase にあります。 アサーションメソッドは static 宣言されていて、あらゆるコンテキストから PHPUnit\Framework\Assert::assertTrue() などのように使えます。 また、PHPUnit\Framework\TestCase を継承したクラスの中では $this->assertTrue() や self::assertTrue() などとしても使えます。 さらに、PHPUnit に含まれるファイル src/Framework/Assert/Functions.php を (手動で) インクルードしてしまえば、グローバルなラッパー関数 assertTrue() などを使うことさえできてしまいます。こ
テスト¶ CakePHP はテストの包括的なサポートが組込まれています。CakePHP は PHPUnit のための統合が付属しています。PHPUnit が提供する機能に加えて、CakePHP は簡単にテストするために いくつかの追加機能を提供しています。このセクションでは、PHPUnit のインストールからユニットテストの はじめ方、そして、CakePHP が提供する拡張機能について説明します。 PHPUnit のインストール¶ CakePHP のテストフレームワークは、PHPUnit を基礎としています。PHPUnit は、PHP での ユニットテストのためのデファクトスタンダードです。それはあなたが思い通りのコードを確実に書くための、 深遠で強力な機能を提供します。PHPUnit は PHAR パッケージ や Composer のいずれかを使用してを介してインストールすることができま
2011-12-07 PHP5.4 で Symfony2 は速くなるのか? ラベル: PHP, PHP5.4, symfony2 ツイート Symfony Advent Calendar JP 2011 7日目です。 6日は @uechoco さんによる [Symfony2]入出力の文字エンコードを変換してみよう Symfony Advent Calender JP 2011 – 6日目- でした。 さて、@uechoco さんから「MongoDB JPにも所属している@madapajaさん」と紹介いただき、これは MongoDB ネタをやれってことかな?とか考えてしまいましたが、今回は PHP5.4 がらみのことを。 PHP5.4 は速くなっているらしいと風の噂で聞いたものの、Symfony2 は速くなるのかなと思ったので試してみました。 環境によって結果が異なると思いますが、今回は
CIUnit には、データベースフィクスチャの機能があります。これは、テストを実行する前にデータベースにあらかじめ用意されたデータを登録する機能です。この機能により、テスト実行時のデータをいつも同じにすることで、正しくテスト結果を判定することができます。 CIUnit については、CodeIgniter で PHPUnit によるアプリケーションテストを実行するための CIUnit をインストールする を参照してください。 データベースフィクスチャの生成 テスト用のデータベースから空のフィクスチャを生成するには、以下のコマンドを実行します。 $ cd tests $ php generate fixturesこの結果、tests/fixtures/ フォルダに「テーブル名_fixt.yml」という名前の yaml ファイルが作成されます。すでにそのファイルが存在する場合は、上書きされません
PHPプロジェクトのテスト PHPのテストによく使われているのはPHPUnitとPHPSpecです。基本的にPHPUnitはすべてのテストをカバーできますが、自分はPHPSpecを優先にして、PHPUnitがバックアップっていう感じで使ってます。PHPSpecはオブジェクトの挙動を検証するには得意だが、サイトのリスポンスなどのテストはちょっと苦手です。 Laravel5のテスト LaravelではすでにUnitテスト実装済みです。PHPUnitについては公式サイトを参考してください: http://laravel.com/docs/5.0/testing PHPSpecを使う LaravelのEloquentモデルはちょっと特殊で、PHPSpecを使うには面倒なセッティングが必要なので、phpspec-laravelを使うのをおすすめします: https://github.com/BenC
最近プログラミングコンテストチャレンジブックを読もうとしています。 そこで、c++を勉強してみようかと考えているのですが、学習効率の向上のため、vimで高速に開発できないものかといろいろ調べてみたところ、quickrun.vimというものが見つかりました。 quickrun.vimの種類 quickrun.vimには2種類あるみたいでujihisaさんが作ったquickrun.vimとthincaさんが作ったvim-quickrunがあるみたい。で、ujihisaさんの昨日はthincaさんのvim-quickrunに取り込まれてるらしいので、vim-quickrunを使えば良いみたいです。 インストール vim-quickrunはShougoさんが作ったvimshellを必要としているのでそちらも必要になります。また、Vimは7.2以上が必要条件のようです。 そして、これらをplugin
概要 PHP で PHPUnit のテストがうまく通らず、PHPStorm でステップ実行したくなることがたまにあります。 しかしながら、PHPStorm の PHP Remote Debug はブラウザ経由でないと、動きません。 と、思っていましたが PHPStorm でやれる方法が判ったので設定方法を共有します。 なので、無理やり画面を作って、PHPUnit を実行する方法を取ったら、まあ上手くいったので覚書ついでに共有してみます。 (2016--216 k-hottaさんからの指摘でさらに良い方法にたどり着いたので修正しました。) さらに良い方法をご存知の方がいらっしゃいましたら是非コメントください。 前提環境 PHPStorm を使っている。 vagrant を使っており、 php はゲストサーバ側にある。 (つまりリモートデバッグは可能。) テストしたい部分には Web 経由で表
Welcome to PHPUnit! PHPUnit is a programmer-oriented testing framework for PHP. It is an instance of the xUnit architecture for unit testing frameworks.
テスト・クラスの拡張 今回は、データベースへのアクセスが必要なテストや、未実装のモジュールを補完してテストするなど、外部モジュールとの連携が必要な場合に役立つテスト方法について紹介します。 まず、データベースのテストに入る前に、PHPUnitのテスト・クラスについて振り返ってみます。 これまで作成したテスト・ケースは、すべてPHPUnit_Framework_TestCaseクラスを継承していました。このクラスはPHPUnitの基底テスト・クラスになります。テスト・ケースを実装するには、setUp()メソッドとtearDown()メソッドをオーバー・ライドします。その中でテスト開始前の初期化と、終了後のクリーン・アップ処理を行います。そして、テスト項目ごとにテスト・メソッドにアサーションを定義しました。 このようにテスト・ケースを実装していくにうちに、共通の処理をまとめたり、新たな機能を追
회원 로그인 회원가입 로그인 알림 × 닫기 Save changes
phpunit コマンドを実行すると、PHPUnit のコマンドライン版テストランナーが起動します。 コマンドラインのテストランナーを使用したテストの様子を以下に示します。 phpunit ArrayTest PHPUnit 6.5.0 by Sebastian Bergmann and contributors. .. Time: 0 seconds OK (2 tests, 2 assertions) このように実行すると、PHPUnit のコマンドラインテストランナーは、 まず現在の作業ディレクトリにあるソースファイル ArrayTest.php を探してそれを読み込み、テストケースクラス ArrayTest を探します。 そして、そのクラス内のテストを実行します。 テストがひとつ実行されるたびに、PHPUnit コマンドラインツールはその経過を示す文字を出力します。 . テストが成
FuelPHP Advent Calendar 2015の6日目を担当する@wataです。昨日は@sharkppさんのNestedSets Model を使って FuelPHP 用コメントボックスパッケージを作った話でした。 本記事ではFuelPHPを用いた開発におけるユニットテスト、特にデータベースまわりに関するテストケースの作成について、保守性の面から色々考えたあれこれを書かせていただければと思います。 FuelPHPのテスト事情 突然ですがみなさん、テスト書いてますか? PHPはとっても柔軟(?)な言語なので、品質を担保するためにはいつでも実行可能で、軽量なテストによって、動作が常に正しいことを検証できることが望ましいとされています。 PHPの場合、テスティングフレームワークとしてはPHPUnitが有名であり、多くのテスト支援のための機能が実装されています。FuelPHPも例外なくP
IDEs AppCode CLion DataGrip DataSpell Fleet GoLand IntelliJ IDEA PhpStorm PyCharm RustRover Rider RubyMine WebStorm Plugins & Services Big Data Tools Code With Me Quality Assurance JetBrains Platform Scala Toolbox App Writerside JetBrains AI Grazie Team Tools Datalore Space TeamCity Upsource YouTrack Hub Qodana .NET & Visual Studio .NET Tools ReSharper C++ Languages & Frameworks Kotlin Ktor MPS Am
src/ A/ Hoge.php B/ Fuga.php tests/ A/ HogeTest.php B/ FugaTest.php bootstrap.php composer.json phpunit.xml.dist merge-coverage.php merge-coverage.php の内容は後述します、その他のファイルはよくある普通の内容です。 テストを複数回に分けて実行します。このとき、phpunit のオプションで --coverage-php を指定します。 $ rm -fr build/coverage $ mkdir -p build/coverage $ vendor/bin/phpunit --coverage-php build/coverage/A.txt tests/A $ vendor/bin/phpunit --coverage-php build
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く