6

モジュールにテストを格納する ZF2 規則に従っていますが、各モジュール内からテストを実行すると、すべてが正常に機能します。私がやりたいのは、個々のモジュール テストを呼び出して統合し、コード カバレッジ データやその他のメトリックを生成するルート レベルの phpunit.xml を用意することです。

問題は、個々のテスト スイートがモジュラー phpunit.xml ファイル内でブートストラップされることです。私が知っている唯一の方法は、個々のxmlファイルが無視されるため、ルートからテストを実行するときに明らかにピックアップされない各phpunit.xmlファイルでブートストラップを構成することです。

だから私の質問は: ルートレベルの phpunit.xml ファイルがモジュールから個々の phpunit.xml とブートストラップ ファイルを読み取る方法はありますか? これを Phing や CI スクリプトで書く方法も考えられますが、開発中に手短に済ませたいのですが、このソリューションではまだ統合されたコード レポートが生成されません。

基本的には、このようなものが必要ですが、テストを実行するのではなく、各モジュール内の個々の phpunit.xml ファイルを実行したいと考えています。これは可能ですか?

<?xml version="1.0" encoding="UTF-8"?>

<phpunit>
    <testsuites>
        <testsuite name="Site Tests">
            <directory>./module/Application/test/ApplicationTest</directory>
            <directory>./module/User/test/UserTest</directory>
        </testsuite>
    </testsuites>
</phpunit>

アップデート

目的は、モジュール固有の概要ではなく、プロジェクトの概要を示すコード メトリックを PHPUnit によって生成することです。回答のスクリプトがモジュールごとに単体テストを実行することを感謝しますが、これは私が探しているものではありません。PHPUnitに関する限り、これが制限になる可能性があることを理解しています。カスタム モジュールを扱う多くのプロジェクトで役立つと思われるため、今後数日間にわたってこれを調査し、解決策を見つけようとします。

更新 2

Robert Basic は、内部にモジュール レポートを含むディレクトリ構造を作成するスクリプトを思いつきました。これはうまく機能しますが、適切なメトリック レポートを使用して PHPUnit 内で実行するとよいでしょう。

https://gist.github.com/robertbasic/5329789

4

2 に答える 2

1

Linux を使用している場合は、簡単なスクリプトを作成できます。まさにあなたが望んでいた解決策ではありませんが、それでもなお役立つ可能性があります:

#!/bin/sh

modDir=$(pwd)
for i in *; do

    if [[ -d $i/test ]]; then
        cd $i/test
        phpunit
        cd $modDir
    fi
done

それをモジュール ディレクトリの runtests.sh ファイルにドロップするだけです。

ちょっとした考え :)

于 2013-04-07T11:57:48.660 に答える