web-dev-qa-db-ja.com

PHPUnitテストへの「Webインターフェース」?

PHPUnitテストスイートを実行するための単純な「Webインターフェイス」はありますか?つまり、PHPコマンドラインでテストを実行し、適切にフォーマットされたHTML結果を出力するスクリプトです。

私はWebアプリケーションを開発しており、日々のワークフローは通常IDEとブラウザの間で切り替わります。同じ環境で単体テストを行いたいのですが。

私は本当にシンプルなものを探しています。PHPベース-私が探している機能を持つphpUnderControlに入る予定ですが、まだそうではありません。

47
Pekka

Phingを使用して PHPUnitTask を実行し、出力を次のように変換できます。

  • PHPUnitReport -このタスクは、XSLTを使用してPHPUnit xmlレポートをHTMLに変換します。

例:

<phpunitreport infile="reports/testsuites.xml" 
    format="frames" 
    todir="reports/tests" 
    styledir="/home/phing/etc"/>

見る phpunit --helpさまざまな出力フォーマット。

PHPUnitの2.3バージョンにはこれに関する章がありましたが、しばらくの間はなくなっています。 Googleで古いコピーをどこかに見つけることができるかもしれません。

これはphpUnderControlに関するものであると説明しているので、それを修正しない場合は、Jenkinsと http://jenkins-php.org の使用を検討してください。

余談ですが、CIサーバーについて話しているのでない限り、私が知っているほとんどの人は、Webインターフェースを介してPHPUnitを使用しません。コマンドラインを使用するか、IDE統合します。

12
Gordon

最近発見した Visual PHPUnit これは、コマンドラインからPHPUnitを実行したくないすべての人にとって、とても素敵なインターフェースのように見えます。

Visual PHPUnit

@Mattの次のイテレーションであるようです PHPUnit Test Report

26
edorian

私はあなたの欲求不満を感じます-私は自分自身がUIの男です。ターミナルを見るのが長すぎると頭が回転します。私はあなたが役立つと思うかもしれない簡単な小さなアプリケーションを書きました。

PHPUnit test application
(ソース: mattmueller.me

あなたはそれをここに見つけることができます: http://mattmueller.me/blog/introducing-phpunit-test-report

乾杯!マット

21
Matt

最近数時間調査した後、私が遭遇した最高のPHPUnit Webフロントエンドは https://github.com/NSinopoli/VisualPHPUnit でした。

18
Motin

Jenkins を使用して、PHPUnitテストを含むあらゆる種類のタスクを実行できます。アプリを自動的にチェックアウトし、テストを実行し、HTMLレポートを作成し、ビルドが失敗した場合にメールで送信することもできます。

ここにテンプレートがあります プロジェクトから一連の興味深いレポートと統計を作成するには、Jenkinsをセットアップする必要があります。

7
Tom

独立したIDEソリューションを好むと言いましたが、PHPUnitをEclipseに単純に実行できるようにする最近のプラグインがあり、(Zend Studioのように)素敵な表現を持っていることを知っています。無料です)。

ここにリンクがあります。問題がある場合、メインの開発者もメールにすばやく返信します。

http://www.phpsrc.org/wiki/

私はいくつかのWebインターフェースを個人的にテストしましたが、常にだまされてきました(実際には実用的で安定していません)。しかし、これはあなたの選択です。

1
Matthieu Napoli

jframeworkには、PHPUnit用のNice UIもあります。結果を壊し、すべてのファイルと各ファイルのテストカバレッジを個別に示します。それはウェブとcliの両方で動作し、cliの方はすべてのテストが終了した後にダンプするという利点があります(webベースのテストはすべてが終わるまで待つ必要があります)。

General web output, with code coverage per file

Code coverage report for a single file

1
AbiusX

私はそのようなウェブインターフェースを見たことがありません...しかし、あなたがいつもあなたがあなたのIDEとあなたのウェブブラウザを使用していると言うように、他の方法を考えてみませんか?

つまり、可能な解決策は、IDE ;-)からユニットテストを起動することです。
つまり、失敗したテストをクリックして、テストメソッドや、テストが失敗した原因などに「ジャンプ」できるはずです。


PHP + PHPUnitの世界では、 Zend Studio がそれを実行することを知っています-はい、残念ながら無料ではありません;


Eclipse PDTを使用する場合の解決策は、PHPUnitを外部ツールとして登録することです(このブログ記事を参照またはインスタンス化する:---(PHPUnitをEclipse PDTで使用する
)-しかし、それはまったく魅力的ではありません。結果をクリックしてメソッド/テストをジャンプすることはできません...

別の解決策は、PHPUnitをEclipse PDTに統合するプラグインを開発することです(Zend Studioで行われたように)-A phpunit4Eclipse は少し前に作成されましたが、それはほんの始まりにすぎず、あまり成功しなかったため、作者はリリース後に作業していません...

1
Pascal MARTIN

私は this を見つけました:

私はParth Patilからの投稿を思いつきました。その解決策は、PHPUnitからxml-reportを作成し、このxmlを使用して独自のレポートを作成することでした。

私は彼のソリューションを使用し、PHPUnit 3.4互換にしました。また、レポートにテストケースのドキュメントコメントを表示するためにリフレクションを追加しました。 (注:リフレクションにはZend_Frameworkリフレクションクラスを使用します)

1
Pekka 웃

出力の再フォーマットを気にせず、WebページからPHPUnitを実行するだけの場合は、次のようないくつかのPHPコードを使用して実行できます。

<pre>
<?php 
$argv[0] = "phpunit.phar";
$argv[1] = '--bootstrap';
$argv[2] = 'src/load.php';
$argv[3] = "tests/MoneyTest";
$_SERVER['argv'] = $argv;
include 'phpunit.phar';
?>
</pre>

ファイルsrc/load.phpは、クラスを含めるためのインクルードの集まりです。出力は次のようになります。

#!/usr/bin/env php
PHPUnit 4.1.2 by Sebastian Bergmann.

........................

Time: 122 ms, Memory: 3.25Mb

OK (24 tests, 43 assertions)

その最初の行を無視すると、結果を確認できます。

PHPUnitにはこれを行うための基本的な方法が含まれていないことにショックを受けました。一部のクラスは、Webサーバーに依存している場合があります。それらをテストしないだけですか?一部のサイトでは、ファイルをアップロードし、コマンドラインの実行を許可していません。

0
Charles

MavenはいつでもPHPから使用でき、そこから確認レポート(mvnサイト)を使用できます。詳細はこちら: http://www.php-maven.org

0
Softy