.. _appendixes.configuration: ================ XML 設定ファイル ================ .. _appendixes.configuration.phpunit: PHPUnit ####### ```` 要素の属性を使って PHPUnit のコア機能を設定します。 .. code-block:: bash cacheResult="false" cacheTokens="false" colors="false" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" forceCoversAnnotation="false" printerClass="PHPUnit\TextUI\ResultPrinter" processIsolation="false" stopOnError="false" stopOnFailure="false" stopOnIncomplete="false" stopOnSkipped="false" stopOnRisky="false" testSuiteLoaderClass="PHPUnit\Runner\StandardTestSuiteLoader" timeoutForSmallTests="1" timeoutForMediumTests="10" timeoutForLargeTests="60" verbose="false"> 上の XML 設定ファイルは、TextUI テストランナーをデフォルトの設定で起動します。 その詳細は :ref:`textui.clioptions` で説明します。 その他、コマンドラインからは設定できないオプションもあります。 ``convertErrorsToExceptions`` ``false`` にすると、 すべての PHP のエラーを例外に変換するエラーハンドラをインストールしません。 ``convertNoticesToExceptions`` ``false`` にすると、 ``convertErrorsToExceptions`` でインストールしたエラーハンドラが ``E_NOTICE`` や ``E_USER_NOTICE`` そして ``E_STRICT`` を例外に変換しなくなります。 ``convertWarningsToExceptions`` ``false`` にすると、 ``convertErrorsToExceptions`` でインストールしたエラーハンドラが ``E_WARNING`` や ``E_USER_WARNING`` を例外に変換しなくなります。 ``forceCoversAnnotation`` コードカバレッジの記録を、 ``@covers`` アノテーションを使っている関数だけに限定します。 このアノテーションについては :ref:`appendixes.annotations.covers` で説明します。 ``timeoutForLargeTests`` テストのサイズによるタイムアウト値を制限する場合に、 ``@large`` とマークされたすべてのテストのタイムアウトをこの属性で設定します。 ここで指定した時間内にテストが完了しなかった場合、テストは失敗します。 ``timeoutForMediumTests`` テストのサイズによるタイムアウト値を制限する場合に、 ``@medium`` とマークされたすべてのテストのタイムアウトをこの属性で設定します。 ここで指定した時間内にテストが完了しなかった場合、テストは失敗します。 ``timeoutForSmallTests`` テストのサイズによるタイムアウト値を制限する場合に、 ``@medium`` あるいは ``@large`` のいずれのマークもついていないすべてのテストのタイムアウトをこの属性で設定します。 ここで指定した時間内にテストが完了しなかった場合、テストは失敗します。 .. _appendixes.configuration.testsuites: テストスイート ############## ```` 要素とその子要素である ```` を使って、 テストスイート群やテストケース群の中からテストスイートを構成します。 .. code-block:: bash /path/to/*Test.php files /path/to/MyTest.php /path/to/exclude ``phpVersion`` および ``phpVersionOperator`` 属性を使うと、必要な PHP のバージョンを指定できます。次の例は、PHP のバージョンが 5.3.0 以降である場合にのみ :file:`/path/to/\*Test.php` と :file:`/path/to/MyTest.php` を追加します。 .. code-block:: bash /path/to/files /path/to/MyTest.php ``phpVersionOperator`` 属性はオプションで、デフォルトは ``>=`` です。 .. _appendixes.configuration.groups: グループ ######## ```` 要素とその子要素である ````、 ```` および ```` を使って、 ``@group`` アノテーション (:ref:`appendixes.annotations.group` を参照ください) でマークされたテストグループから実行する (しない) ものを選びます。 .. code-block:: bash name name 上の XML 設定ファイルは、 TextUI テストランナーを以下の引数で起動します。 - ``--group name`` - ``--exclude-group name`` .. _appendixes.configuration.whitelisting-files: コードカバレッジ対象のファイルのホワイトリスト ############################################## ```` 要素とその子要素を使って、 コードカバレッジレポートのホワイトリストを設定します。 .. code-block:: bash /path/to/files /path/to/file /path/to/files /path/to/file .. _appendixes.configuration.logging: ログ出力 ######## ```` 要素とその子要素である ```` を使って、 テストの実行結果のログ出力を設定します。 .. code-block:: bash 上の XML 設定ファイルは、 TextUI テストランナーを以下の引数で起動します。 - ``--coverage-html /tmp/report`` - ``--coverage-clover /tmp/coverage.xml`` - ``--coverage-php /tmp/coverage.serialized`` - ``--coverage-text`` - ``> /tmp/logfile.txt`` - ``--log-junit /tmp/logfile.xml`` - ``--testdox-html /tmp/testdox.html`` - ``--testdox-text /tmp/testdox.txt`` ``lowUpperBound``、``highLowerBound`` および ``showUncoveredFiles`` 属性には、TextUI テストランナーで対応するオプションがありません。 - ``lowUpperBound``: カバー率がこの値に満たないときに、カバー率が "低い" とみなします。 - ``highLowerBound``: カバー率がこの値を超えるときに、カバー率が "高い" とみなします。 - ``showUncoveredFiles``: ``--coverage-text`` の出力で、カバレッジ情報だけではなくホワイトリストの全ファイル一覧も表示します。 - ``showOnlySummary``: Show only the summary in ``--coverage-text`` output. .. _appendixes.configuration.test-listeners: テストリスナー ############## ```` 要素とその子要素である ```` を使って、 テスト実行時にテストリスナーをアタッチします。 .. code-block:: bash Sebastian 22 April 19.78 上の XML 設定は、 ``$listener`` オブジェクト (以下を参照ください) をテストの実行時にアタッチします。 .. code-block:: bash $listener = new MyListener( ['Sebastian'], 22, 'April', 19.78, null, new stdClass ); .. _appendixes.configuration.extensions: TestRunner エクステンションの組み込み ##################################### ```` 要素とその子要素である ```` を使って カスタムの TestRunner エクステンションを組み込みます。 :numref:`configuration.examples.RegisterExtension` にエクステンションを 組み込む方法を示します。 .. code-block:: xml :caption: TestRunner エクステンションの組み込み :name: configuration.examples.RegisterExtension .. _appendixes.configuration.php-ini-constants-variables: PHP INI 項目や定数、グローバル変数の設定 ######################################## ```` 要素とその子要素を使って、 PHP の設定や定数、グローバル変数を設定します。また、 ``include_path`` の先頭にパスを追加することもできます。 .. code-block:: bash . 上の XML 設定は、次の PHP コードに対応します。 .. code-block:: bash ini_set('foo', 'bar'); define('foo', 'bar'); $GLOBALS['foo'] = 'bar'; $_ENV['foo'] = 'bar'; $_POST['foo'] = 'bar'; $_GET['foo'] = 'bar'; $_COOKIE['foo'] = 'bar'; $_SERVER['foo'] = 'bar'; $_FILES['foo'] = 'bar'; $_REQUEST['foo'] = 'bar'; デフォルトでは、既存の環境変数は上書きしません。 設定済みの環境変数を上書きしたい場合ば ``force`` 属性を使いましょう。 .. code-block:: xml