SimpleTestとPHPunit


私はこれらの両方の経験を持っている誰かが、もしあれば、両者の間の重要な違いを明らかにすることができるかどうか疑問に思っていましたか?

特定の事例に適したそれぞれの具体的な強みはありますか?


Answers



この質問はかなり古いものですが、それでもまだトラフィックと回答が得られていますので、私はもう一度私の意見を述べていますが、他の(新しい)質問でもそれをやっています。

SimpleTestはまだ phpunitの代わりと考えられています。 たぶん私はちょうど誤っているが、私が見た限りでは:

  • PHPUnitは標準です。 ほとんどのフレームワークはそれを使います(Zend Framework(1&2)、Cake、Agaviのように、symfonyはphpunitのSymfony 2で独自のフレームワークを削除しています)。
  • PHPUnitはすべてのPHP IDE(Eclipse、Netbeans、Zend Stuide、PHPStorm)に統合され、うまく機能します。
  • Simpletestには、PHP 5.1(旧名)のEclipse拡張機能があります。
  • PHPカレンダーは、コードカバレッジとテストレポート用のすべての標準ログファイルを出力するため、すべての継続的インテグレーションサーバでうまく動作します。
  • Simpletestはしません。 これは大きな問題ではありませんが、最初に "テスト"をやめ、ソフトウェア開発を開始すると大きな時間がかかります(あまりにも真剣に考えてはいけません)。
  • PHPUnitは、積極的に管理され、安定しており、すべてのコードベース、あらゆるシナリオ、テストを書くあらゆる方法に適しています。
  • (主観的) PHPUnitは 、Simpletestよりも優れたコードカバレッジレポートを提供します
  • PHPUnitを使用すると、これらのレポートをIDE( Netbeans 、Eclipse、...)
  • またweb interface to phpunit testsためのweb interface to phpunit testsに関するいくつかの提案がありweb interface to phpunit tests

私はまだSimpleTestに有利な議論を見たことがありません。 PHPUnitはpearで利用できるので、インストールするのが簡単ではありません:

pear channel-discover pear.phpunit.de
pear install phpunit/PHPUnit

「最初のテスト」はほぼ同じように見えます。

PHPUnit 3.7以降では、 PHAR Archiveを使用するだけで簡単にインストールでき PHAR Archive

wget http://pear.phpunit.de/get/phpunit.phar
chmod +x phpunit-3.7.6.phar

pharをダウンロードして実行しているウィンドウの場合:

php phpunit-.phar

またはサポートされているコンポーザーを使用する場合は、

"require-dev": {
    "phpunit/phpunit": "3.7.*"
}

あなたの作曲家に.json。

PHPUnitをテストしたいすべてのものには解決策があり、どこからでもヘルプを見つけることができます(つまり、#fpunit irc channel on freenode、ほぼすべてのPHP開発者))

私が何か間違ったことを言ったり、何かを忘れた場合は、私を修正してください:)

PHPテストツールの概要

ビデオ: http : //conference.phpnw.org.uk/phpnw11/schedule/sebastian-bergmann/

スライド: http : //www.slideshare.net/sebastian_bergmann/the-php-testers-toolbox-osi-days-2011

それはAtoumのようなものを言います。それは「PHPのためのシンプルでモダンで直感的な単体テストフレームワークです!

完全開示

私はもともとこの回答を2011年1月に書いていましたが、私はPHP Testingプロジェクトに所属していませんでした。 それ以来、私はPHPUnitに貢献しました。




私はPHPUnitを好んでいましたが、私が始めたとき、私はいつもコマンドラインにアクセスできなかったので、私はSimpleTestを使いました。 SimpleTestは素晴らしいですが、PHPUnitを上回る唯一のものは、私の意見では、Webランナーです。

PHPUnitが好きな理由は、 phing (SimpleTestのように)、 phpUnderControlXincなどの他のPHP開発ツールと統合されているからです 。 バージョン3.0以降では、モックをサポートしており 、積極的に開発されており、ドキュメントは優れています。

本当にあなた自身のためにこの質問に答える唯一の方法は、あなたのスタイルに合ったものを一度に試してみることです。

編集:現在、PhingはSimpleTestと統合されています。




  • 私はPHPUnitをダウンロードしてインストールする方法を理解できませんでした。
  • しかし、私はSimpleTestのインストール方法を簡単に理解することができました。

    (私がPHPUnitの指示を覚えている限り、「PEAR経由でインストールして、それを他の方法でやる方法は教えてくれません」という行に沿って何かを言っていた)

  • http://www.phpunit.de/manual/current/en/installation.html

SimpleTestの場合は 、ダウンロードしてコードからポイントしてください。

だからシンプルテストが私のために勝った。







受け入れられた答えの上記の点の半分は、単に真実ではありません:

SimpleTestには

  • 簡単なセットアップ(フォルダに展開、インクルード、実行)
  • 単にバージョンコントロールにフォルダをチェックする(phpunitでこれをやろうとする:))
  • より少ない依存性とたくさんの拡張(webtester、formtester、auth)
  • 拡張が容易な良いコードカバレッジレポーター(ドット、関数名、色)
  • コードカバレッジサマリー(最終的にPHPUnit 4.xに移植されました)
  • まともなウェブランナーとajaxウェブランナー、グループと単一ファイルの実行
  • もっと良いdiffツール(空白や改行の問題はありません)
  • phpUnitでSimpleTestsを実行するためのアダプタ/ラッパー(逆も同様)
  • GitHub: https : //github.com/simpletestで積極的に管理されています
  • 互換性PHP5.4 +

欠点:

  • 業界標準ではない(PHPUnit)



さて、私はphpUnit WebベースのUIテストケースランナーを作り、sourceforgeで利用できるようにしました。 ajaxを使用し、あなたがsourceforgeでそれを確認するショットを与える場合は、かなりクールなインターフェイスを持っています。 プロジェクト名はphpunitwebui、ウェブサイトはhttp://phpunitwebui.sourceforge.net/です。




私は、SimpleTestがPHPUnitより簡単に設定できることを発見しました。 ちょうどそれを抽出し、あなたは行くのが良いです。 同じフレームワークコードを使用していることを知っているので、複数のマシンで作業している場合は、テストフレームワーク全体をソースコードと同じ方法で保存することができます。 特にあなたがそれを何らかの形で変更した場合。

だから、私はSimpleTestの強みは非常に軽量で持ち運びできるということです。

SimpleTestには非常にシンプルなHTML GUIが付属しています。あなたが望むなら、簡単に拡張できます。 私の知る限り、PHPUnitにはHTML GUIは含まれていませんが、 Coolなどのダウンロード可能なGUIがあります。




それが指摘されているように、それはほとんどあなたのために書くテストを実行し、結果を報告するので、主に選択肢の選択です。

SimpletestのWeb UIは非常に便利ですが、面倒なこともあります。 私の現在のプロジェクトでは、自分のアプリケーション(API)をWebインターフェイス(apacheを正しく設定する、ファイルをpublic_htmlルートにコピーするなど)で動作させるために、もっと多くの作業をシステムに組み込む必要がありましたeclipseワークスペースからphpunitを実行するだけです。 したがって、私はPHPUnitを選択します。 また、手動でアップデートを追跡する必要がないので、PEARの使用は大きなプラスでした。 pear upgradeをしばらく実行するだけで、PHPUnitは最新の状態に保たれます。




私はしばらくの間Simple Testをチェックしていません、最後にEclipseのプラグインがありましたが、それは私にとって大きな要因ですが、それはずっと更新されていません。 Sebastian BergmannはまだPHPUnitに積極的に取り組んでいますが、まだEclipse用のプラグインはありませんが、新しいZend Studioには含まれています。




この質問は古いですが、私は私の経験を追加したいと思います:PHPUnitは今の標準のようですが、たくさんのグローバル変数を使用するレガシーシステムを使って作業すると、手間がかからないことがあります。 PHPUnitでグローバル変数をテストする良い方法はないようですが、グローバル変数をどこにでも設定しているファイルがたくさんある場合は、$ GLOBALS経由で変数を設定する必要があるようです。 問題はレガシーシステムにあると言う人もいますが、そういうシステムではテストできないわけではありません。 SimpleTestでは、このようなことは簡単です。 私は、PHPUnitを使用して、クラス/関数のスコープ内ではなく、グローバルにファイルを含めることができれば、あまり問題にならないと思います。

もう一つの有望な解決策はhttp://www.enhance-php.comです




これは非常にカジュアルなPHP開発者の立場からです:

PHPUnitを把握するのに2日かかっていました。

Eclipseの下でのデバッグを含むSimpletestのセットアップには2時間かかりました。

おそらく私はSimpletestの不足を将来的に見出すことができますが、これまでのところTestClasses、Mockオブジェクト、テストコードのデバッグ、状況の簡単なスナップショットのためのWebインターフェイスが必要です。

繰り返し: これは非常にカジュアルなPHPユーザーの立場からです (開発者でさえも---)




一度にテストする何千もの機能があるとき、phpunitは行く方法です、簡単なテストはWebベースのように不足しています。

私はまだ小規模なテストのためにシンプルなWebを使用しています。

しかし、どちらも良いです