質問

この両方の経験がある人が、この問題に光を当てることができるかどうか疑問に思いました。 重要な 2つの違いがあるとしたら?

特定のケースに適した、それぞれの具体的な長所はありますか?

役に立ちましたか?

解決

この質問はかなり古いものですが、依然としてトラフィックと回答が寄せられているため、他の(新しい)質問で既に述べたにもかかわらず、ここでもう一度自分の主張を述べます。

私は 本当に その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 拡張機能 (別名:古い)そしてそれ以外には何もありません。
  • PHPUnit は、コード カバレッジとテスト レポートのすべての標準ログ ファイルを出力するため、あらゆる継続的統合サーバーで正常に動作します。
  • Simpletest はそうではありません。これは最初は大きな問題ではありませんが、「ただのテスト」をやめてソフトウェアの開発を始めると、大きな問題になります (はい、その発言は挑発的です :) あまり真剣に受け止めないでください)。
  • PHPUnit は積極的に保守され、安定しており、あらゆるコードベース、あらゆるシナリオ、テストを記述するあらゆる方法でうまく機能します。
  • (主観) PHPUnit はさらに優れた機能を提供します コードカバレッジレポート シンプルテストよりも
  • PHPUnit を使用すると、これらのレポートを IDE 内で取得することもできます (ネットビーンズ, 、日食、...)
  • また、いくつかの提案があります。 web interface to phpunit tests.

SimpleTest を支持する議論はまだ見たことがありません。PHPUnit は pear 経由で入手できるため、インストールはさらに簡単ではありません。

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

「最初のテスト」もほぼ同じです。

現在 PHPUnit 3.7 その 取り付けがさらに簡単 を使用するだけで PHAR Archive

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

またはWindowsの場合のみ ダウンロード ファーとランニング:

php phpunit-.phar

または使用時 サポートされているコンポーザーのインストール のような方法で

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

あなたのcomposer.jsonに。


テストしたいことすべてに対して、PHPUnit には解決策があり、どこでもヘルプを見つけることができます (つまり、freenode の #phpunit irc チャネル、ほぼすべての php 開発者 ;))

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

PHP テストツールの概要

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

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

それは次のようなことについて言及しています アトム それは自分自身を呼び出します:「シンプル、モダン、直観的な PHP 用単体テスト フレームワーク!」


完全な開示

私がこの回答を最初に書いたのは 1 月です。2011 年、私はどの PHP テスト プロジェクトにも所属していませんでした。それ以来、私は PHPUnit のコントリビューターになりました。

他のヒント

今では PHPUnit の方が好きですが、最初の頃は常にコマンド ラインにアクセスできるわけではなかったため、SimpleTest を使用していました。SimpleTest は優れていますが、PHPUnit より優れているのは Web ランナーだけだと思います。

私が PHPUnit が好きな理由は、次のような他の PHP 開発者ツールと統合できるためです。 フィング (SimpleTest と同様)、 phpUnderControl, 、 そして シンク. 。バージョン 3.0 以降では、 嘲笑している サポートは積極的に開発されており、ドキュメントは優れています。

この質問に自分で答える唯一の方法は、両方をしばらく試してみて、どちらが自分のスタイルに適しているかを確認することです。

編集:Phing は SimpleTest とも統合されるようになりました。

  • PHPUnitのダウンロードとインストール方法がわかりませんでした。
  • ただし、SimpleTest のインストール方法は簡単に理解できました。

    (私が覚えている限りでは、その指示は PHPUユニット 「洋ナシを介してそれをインストールすると、他の方法でそれを行う方法について指示を与えない」という線に沿って何かを言ってください。

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

のために シンプルテスト, 、それをダウンロードしてコードからポイントするだけです。

つまり、Simpletest が私にとって勝利を収めたのです。

Baphled に素晴らしい記事があります SimpleTest と PHPUnit3 の比較.

受け入れられた回答で言及されている点の半分は単に真実ではありません。

シンプルテスト もっている

  • 簡単なセットアップ (フォルダーに抽出し、インクルードして実行)
  • フォルダーをバージョン管理にチェックインするだけです (今では phpunit を使ってそれを試してみてください :))
  • 依存関係が少なく、拡張機能が豊富 (webtester、formtester、auth)
  • 拡張が簡単な優れたコード カバレッジ レポーター (ドット、関数名、色)
  • コードカバレッジの概要 (最終的に PHPUnit 4.x に導入されました)
  • グループと単一ファイルの実行を備えたまともな Web ランナーと Ajax Web ランナー
  • さらに優れた diff ツール (空白や改行の問題がない)
  • phpUnit によって SimpleTests を実行するためのアダプター/ラッパー、またはその逆
  • 互換性 PHP5.4+

欠点:

  • 業界標準ではありません (PHPUnit)
  • 積極的にメンテナンスされていない

SimpleTest は PHPUnit よりもセットアップが簡単であることがわかりました。抽出するだけで準備完了です。この利点は、複数のマシンで作業している場合にあります。ソース コードと同じ方法でテスト フレームワーク全体を保存できるため、同じフレームワーク コードを使用していることがわかります。特に何らかの方法で変更した場合。

したがって、SimpleTest の強みは、非常に軽量でポータブルであることだと言えます。

SimpleTest には非常にシンプルな HTML GUI も付属しており、必要に応じて簡単に拡張できます。私の知る限り、PHPUnit には HTML GUI は含まれていませんが、ダウンロードできる GUI はあります。 いいね.

さて、phpUnit の Web ベースの UI テスト ケース ランナーを作成し、sourceforge で利用できるようにしました。ajax を使用しており、非常にクールなインターフェイスも備えています。試してみたい場合は、sourceforge で確認してください。プロジェクト名は phpunitwebui 、Web サイトは http://phpunitwebui.sourceforge.net/

すでに指摘されているように、どちらも作成したテストを実行し、結果を報告するため、これは主に好みの選択です。

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 でのデバッグを試みましたが、最終的には断念しました。

Eclipse でのデバッグを含めて Simpletest をセットアップするのに 2 時間かかりました。

将来的には Simpletest の欠点が見つかるかもしれませんが、今のところ、必要なものは十分に機能しています。TestClasses、Mock オブジェクト、テストコードのデバッグ、および状況の簡単なスナップショット用の Web インターフェイス。

また: これは非常にカジュアルな PHP ユーザーの観点から見たものです (開発者ですらない:-)

一度にテストする関数が数千ある場合、phpunit は最適ですが、単純なテストは Web ベースであるため不十分です。

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

でもどっちもいいよ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top