8

自動化された「ビルド」と PHP アプリケーションのテストの完全なソリューションを探しています。私は、Cruise Control を中心に作成された自動化されたアプリケーション ビルドを実行するためのソリューションである PhpUnderControl に出会いました。

残念ながら、PhpUC はまだ開発の初期段階にあり、Windows ボックスで動作させることはできません。

数時間試した後、phpUcをあきらめました。現在、クルーズ コントロールを単独で使用しようとしています。ビルドプロセス全体の実行に関しては、問題なく機能します。Ant のビルド ファイルに入力したすべてのコマンドは正常に実行されます。

唯一の問題は、Cruise Control が実行ビルドのログをプロジェクト ログ ファイルにマージしないため、ビルド結果を確認できないことです。ただし、Cruise Control のサンプル プロジェクトは正常に動作し、ビルドのログはプロジェクトのログにマージされます。

Cruise Control は、PHPUnit によって作成されたログ (XML 形式) をプロジェクト ログにマージできるのか、それとも Java の JUnit ファイルに対してのみ機能するのか疑問に思っています。PHP プロジェクトで Cruise Control を単独で使用しようとした人はいますか?

プロジェクトの構成 (config.xml) のログ セクションは次のとおりです。

<log dir="logs/${project.name}">
<merge dir="projects/${project.name}/build/logs/"/>
</log>

これは、Cruise Control のサンプル プロジェクトから変更されたパスをコピーして貼り付けたものです。

どなたかご意見お願いします。

ありがとう

4

4 に答える 4

2

Cruise Control は、PHPUnit によって作成されたログ (XML 形式) をプロジェクト ログにマージできるのか、それとも Java の JUnit ファイルに対してのみ機能するのか疑問に思っています。

CC は、指定した xml ファイルをマージします。ファイルのマージが機能しないと言う場合、ファイルのマージでエラーが発生するのでしょうか、それともテスト結果が結果ページに表示されないのでしょうか? ビルド ログ ファイルを見ると、テスト結果がマージされていることがわかりますか?

目にする可能性のある問題の 1 つは、jsp レポート アプリケーションの .xsl ファイルが、テスト結果が ant junit タスクによって作成された構造にあることを期待していることです。ファイルをマージしているのに、.xsl が結果を表示する方法を認識していない可能性があります。

しかし、私は簡単な解決策があると思います。PhpUnderControl プロジェクトは phpunit.jsp を提供します。これを既存の CC インストールに追加すると、テスト結果を表示できると思います。phpunit.jsp をタブに簡単に追加できます。main.jsp を見れば明らかです。

追加の質問がある場合は、CruiseControlユーザー メーリング リストをお勧めします。

(PHP プロジェクトで CC を使用したことはありませんが、CC コミッターの 1 人です。)

于 2008-12-01T16:57:33.447 に答える
1

phpunit、phpUnderControl、および CC はうまく機能します。

phpunit xml ファイルのタブ (CC を使用した phpUnderControl) でテストを取得するには、生成された phpunit ログ ファイルが正しいパスにあることを確認します。

  <log type="junit" target="...../cruisecontrol-bin-2.8.4/projects/<projname>/build/logs/logfile.xml" logIncompleteSkipped="false"/>

logfile.xml が phpunit から生成されると、phpUnderControl と CC の両方のテスト タブにテストが表示されます。

于 2012-02-05T10:43:45.523 に答える
0

テストが失敗した場合、CruiseControl はテスト結果を含むログのみをマージすることがわかりました。

わざとテストを中断したところ、結果がログにマージされ、CruiseControl ダッシュボードに表示されました。

それはあなたの問題でしょうか?

于 2008-12-03T11:01:36.333 に答える
0

CC で PHPUc を使用しようとしましたが、うまく動作しませんでした。私たちはそのままの CC で実験しましたが、そこで認証を取得するのは難しいことがわかりました (私たちは分散しているので、それを突き止めない限り、私たちのレポートは世界中に公開されます - 私たちはそれを理解することができませんでした.)

そのため、実際には Hudson を CI エンジンとして使用し、Phing をビルド ツールとして使用しています。それはうまく動作します。PHPUnit から直接出力されるコード カバレッジ レポートがあります (ハドソンは Java の世界で「クローバー カバレッジ」と呼んでいますが、これは単にリンクの名前であり、それが何を意味するかはわかっています)。

Hudson はセットアップが簡単で、PHP に必要なすべてのもので動作するようです。

于 2008-12-10T17:29:54.950 に答える