2

実行プラットフォームに基づいて設定を構成するために、実行時に処理される PHPUnit XML ファイルに構成の違いを持たせることは可能ですか? たとえば、Ubuntu では Color を使用しますが、Windows では使用しません。

説明する:

さまざまな開発プラットフォームを使用しており、コードがどちらのプラットフォームの Web サーバーでも機能することを確認したいと考えています。また、使用するツールは異なるプラットフォーム上にあります。たとえば、開発者用の社内バックエンド サーバー (PHPUnit、PHPDocs、Wiki、その他のツール) は Ubuntu コンピューター上にあります。開発者は Windows ベースの PC を積極的に使用しています。

開発者がコードを変更した場合、リポジトリにチェックインする前にコードが機能することをテストできるようにしたいと考えています。したがって、ローカル マシンで PHPUnit、PHP_CodeSniffer、PHPMD、および PHPDocs を実行して、コミットしても問題ないことを確認します。

次に、メインシステムはコードがコミットされたことを確認し、Ubuntu マシンで他のすべてのコードの変更と合わせてこれらのテストを再実行し、テスト結果、コードカバレッジなどで会社全体のページを更新します...これらのテストはOS/言語構成が異なるさまざまなコンピューターで実行できます。Selenium を介した Web ブラウザのテストも、この時点で開始され、多くの異なる Web サーバー/OS/ブラウザ バージョンにわたって行われます。

新しいツールやさまざまなプロジェクトなどを導入すると、XML ファイルが除外ファイルやテスト スイートの構成などで変更されます。テストを実行しています。

プラットフォームごとに異なる設定を構成できるようにしたいと考えています (使用されている変数を設定できるため、すべての組み合わせで機能します)。変更が確実に受信されるように、ソースの後に別のファイルをコピーする必要はありません。

これは合理的ですか、または Jenkins のようなものを使用すると、この問題を回避できますか? ただし、開発者がツールをすばやく実行できるように、Windows PC のツールをできるだけ基本的なものに保つようにしています。そうしないと、この手順が無視されます。

4

1 に答える 1

2

この回答は予想よりも長くなりましたが、適切です。簡単な答えは、さまざまな構成ファイルを作成することです。phpunitwindows7.xml

phpunitubuntu.xml

phpunitmacosx.xml

等...

しかし、あなたの問題は、非常に多くの異なる構成があり、これを行うと多くのメンテナンスが必要になることだと思います。そのため、最初に行うことは、必要な設定でオブジェクトを構築することです。基本の phpunit.xml をSimpleXMLオブジェクトにロードする

$sxe = simplexml_load_file('phpunit.xml);
// Modify a node
$sxe->phpunit = '<tessuites....>';

// You can access an element's attribute just like this :
$attribute = $sxe->phpunit->attributes()->$att;

$sxe->phpunit->attributes()->$verbose = $phpunitSettings->verbose;

// Saving the whole modified XML to a new filename
$sxe->asXml('windows7-cookie-cutter-phpunit.xml');

各開発者は、OS / プロジェクトなどに基づいて適切な phpunit 構成ファイルにビルド構成を設定します。

Jenkins はもちろん、このスクリプトを Ant ビルド ファイルで実行して、phpunit を手動で実行する代わりに、phpunit の実行前にこれらの phpunit 構成ファイルを更新できるため、これを行うのに役立ちます。

あなたができるもう一つのことは、

<?php 
    header ("Content-Type:text/xml");
?>

このような動的ファイルを表示するには

<phpunit setting="<?php echo $setting; ?>"

><!-- yada yada-->
</phpunit>

動的ファイルには引き続き php スクリプトからアクセスする必要がありますが、コンテンツの exe を取得するために cUrl を使用して簡単に実行できます。

http://yoursite.com/apps/phpunit-config.php?os=windows7&project=cookiecutterblog

また、開発者のマシンに jenkins がインストールされている場合は、Poll SCM を使用して毎日 1 時間ごとに実行するように設定できるため、使用するかどうかは問題ではなく、知らないうちに使用されます。

ここに画像の説明を入力

Eclipse で MakeGood 拡張機能を使用している場合は、スクリプトをプリロードして phpunit 構成ファイルを更新できます。

良くする

ファイルを編集して保存するたびに、IDE に読み込んで簡単に実行できます。 ここに画像の説明を入力

これは、私がまとめたMakeGood IDE セットアップ チュートリアルです。

開発者は何もしないので、開発者にとって簡単になるかどうかはわかりません...

于 2013-02-18T07:05:08.140 に答える