8

ドキュメントを見ると、PHPUnit は次の機能しか提供していないことがわかります。

http://www.phpunit.de/manual/current/en/writing-tests-for-phpunit.html#writing-tests-for-phpunit.assertions

それらはすべて、1,000 行未満のカスタム テスト スクリプトで非常に簡単に実装できます...

PHPUnit には、膨大な量のクラスを含む 2 MB (約 200) のファイルがあります。また、PHPUnit はコマンドラインからのみ実行されます :(

独自のスクリプトを作成する方がよいのではないでしょうか?

4

4 に答える 4

10

PHPUnit は野獣です。サイズが大きく、直感に反することもあり、欠点もあります。あなたのコードは - 当然 - 直感的で、直接的な要件に対して完璧です。私も、自分自身のテスト フレームワークを作成することが一歩前進ではないかとよく考えてきましたが、そうではありませ。初歩的なテスト フレームワークは 1 日で完了できますが、次の点に注意してください。

  • PHPUnit は最新のほとんどの IDE に統合されています。
  • PHPUnit は、コード カバレッジ レポート用に XDebug とうまく連携します。
  • PHPUnit は、統合テストのために Selenium と連携できます。
  • PHPUnit は多くのプログラマーによって使用されています。つまり、テストは多くのプログラマーにとってすぐに明確になります。
  • PHPUnit は、Travis CI などの CI セットアップに統合できます。
  • PHPUnit にはモック ライブラリがあります。
  • 最も重要なこと: PHPUnitは動作します。

自分で書くことに反対する理由はたくさんあります。

于 2012-08-08T12:22:22.830 に答える
8

@hakreが触れなかった2つのポイント:

コードカバレッジ

コードカバレッジ(実行されたコードの量を視覚化する)についてかなりのレポートを行うことはそれほど簡単ではありませんが、xDebugを使用すると、構築にかなりの時間がかかるエッジケースと煩わしさがいくつかあります。

PHPUnit helps you out with a nice report.

報告

テストで最も重要なことは、何が悪かったのかをすばやく把握する機能です。

a nice diffPHPのすべてのもの(例外、オブジェクト、文字列、xml、jsonなど)のために自分自身を構築するのは非常に時間がかかります

また、ある時点で、のような継続的インテグレーションサーバーに移動するJenkins必要があります。PHPUnitのようなテストフレームワークは、必要なすべてのアーティファクト(junit.xml、clover.xml)を既に生成しますset up CI for your projects in half an hour


したがって、すべての高度な機能とヘルパー(モッキング、レガシーコードをテストするためのプロセス分離、outputBuffering、例外ヘルパーなど)を使用しなくても、プロジェクトの成長に合わせて拡張できる基本セットアップを取得できます。そしてより成熟します。

CLIのみ

ところで。ブラウザで実行されるとa web interface to phpunit呼ばれます。それでも、正直なところ、なぜ誰もがそれを望んVisual PHPUnitでいるのかについての手がかりはありません。おそらく更新なしですが、私はよりもCLIターミナルでスクリプトループを使用したいと思います。しかし、それぞれに:)

于 2012-08-08T12:15:00.677 に答える
6

独自のスクリプトを作成する方がよいのではないでしょうか?

いいえ、それは良い考えではありません。独自のスクリプトを作成する場合、プログラミングは 1 人で行うことになります。PHPUnit を使用すると、単体テストに一般的に必要とされるさまざまな機能を処理する大規模なユーザー コミュニティが形成されるため、コードをコピーして共有することで作業を軽減することができます。

ソフトウェアですのでコピーしただけではダメです。さらに、多くの入力 (構成など) と出力 (テスト結果の形式、コード カバレッジ、レポート)、および統合 (コマンドライン ランナー、IDE、CI サーバーなど) が付属しています。あなたが今日始めたときには、あなたが近づくことさえできないどこかに。

ただし、PHPUnit を使用せずにテスト駆動開発を開始して、独自のテストを作成することはできます。これは、TDD を学習するのに最適であるだけでなく、テスト フレームワークを使用する理由をよりよく理解するのにも最適です。

于 2012-08-08T11:59:56.830 に答える
0

上記はそれをカバーしていると思いますが、マークされた正解がなかったので、これを追加させてください:車輪の再発明に駆り立てられる業界で犯された典型的な間違いを犯さないでください. 事実上の標準が既に存在し、コミュニティやビジネスがロードマップを備えたソフトウェアを支援している場合は、それを使用してください。独自のソリューションを設計することから得られる唯一の良いことは、他の確立されたソリューションの根性がどのようにうまく機能するかを学ぶことです. あなたの質問に答えるために、あなたはそれをすることができますか? PHP を使用する理由は、独自の言語を作成できるからです。フレームワーク X を使用する理由は、独自のフレームワークを作成することだけです。あなたは要点を理解します。人気のある既存のアプローチよりも優れた製品を明確に示す独自のアプローチを本当に持っていない限り、それは.

于 2012-12-22T05:22:17.750 に答える