1

私はCIにHudsonを使用しており、その中で自動テストにPhingを使用しています。build.xmlでphpunitタスクを指定すると、テストスイートが実行されます。私の質問は:これはどのように起こりますか?HudsonはJVM内で実行されていますが、PHPにはPHPコンテナーが必要です。

PHPがCLIスタンドアロンアプリケーションとしてインストールされているように見えます。この場合、PhingでサポートされていないphpRackで記述されたテストを実行できます。右?しかし、どうやって?

私はこれを探していましたが、phpRackが他の人によって十分にサポートされていないようです。

4

3 に答える 3

3

Antは<exec>タスクを使用して、PHPUnitなどのほとんどの外部ツールを実行します。PhpRackにCLIモードがある場合は、同じように使用できます。ただし、合格または不合格を判断するには、出力用のポストプロセッサが必要です。

編集:おっと、どうやってPhingを逃したのですか?笑。説明されている他の回答と同じ原則が適用されます。

于 2011-06-26T17:57:49.553 に答える
2

Hudson / Jenkinsは、PHPを「直接」呼び出すのではなく、ビルドファイルを使用して呼び出します。phing.xmlまたはant.xmlまたは使用するもの。

そして、そのファイルは通常のシステムコールを起動するだけです(phpではあなたが行うsystem("/usr/bin/php file.php");か同様のことです。

したがって、コマンドラインツールを呼び出すと、そのように呼び出されます。http-requestを送信する場合(phpRackの例が示すように)、動作しているWebサーバーがインストールされており、ブラウザーがアクセスするのと同じようにURLにアクセスできることを確認する必要があります。

于 2011-06-27T07:43:45.897 に答える
2

前の回答で述べたように、シェルから実行できる限り、Phingで何でも実行できます。ハドソン/ジェンキンスのジョブ構成で探しているものは次のとおりです。

ビルドステップの追加->シェルの実行->コマンド

そこに何かを入れるだけ/usr/bin/php /path/to/your/script.phpで実行されます。

注意:Phing phpRackを統合する例があるので、実際にそれを使用することができます:https ://github.com/tpc2/phprack/wiki/Phing

于 2011-06-27T08:58:11.180 に答える