コード カバレッジ ルールをファイルごとに定義できるようにするツール。すべてのファイルに最小カバレッジしきい値を設定し、現在のテスト カバレッジがまだ標準に達していない場合は、既存のファイルにカスタムの最小カバレッジを構成します。検査の失敗は checkstyle 形式で出力され、ci/cd ツールにインポートできるようになります。
標準のカバレッジ計算は、コードベース全体にわたって計算されます。たとえば、しきい値が 80% で、1 つのファイルが 80% を下回った場合、全体のカバレッジが 87.6% から 87.4% に変化するため、これに気づくことはありません。このパッケージを使用すると、そのようなことが確実に起こらなくなり、カバレッジはファイルごとに計算されます。
入力: clover Coverage.xml
出力: checkstyle または gitlab
次の方法でライブラリを依存関係として独自のプロジェクトに含めます。
composer require "digitalrevolution/phpunit-file-coverage-inspection" --dev
ファイル: phpfci.xml
<?xml バージョン="1.0" エンコーディング="UTF-8"?> <phpfci xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="vendor/digitalrevolution/phpunit-file-coverage-inspection/resources/phpfci.xsd"min-coverage= "100"allow-uncovered-methods="false"> <custom-coverage><!-- ディレクトリ ベースのカバレッジ ルール --><directory path="src/Lib/" min="90"/><!-- サブディレクトリは親ディレクトリ ルールより優先されます --><ディレクトリ パス="src/Lib/Config/" min="100" /><!-- ファイル ルールは常にディレクトリ ルールより優先されます --><file path="src/Lib/Config/File.php" min="80 "/> </custom-coverage> <!-- 'allow-uncovered-methods' が false に設定されている場合、特定のファイルに対してこの動作をオーバーライドします: --><ignore-uncovered-methods> <ファイルパス="src/Command/ExampleCommand.php"/> </ignore-uncovered-methods> </phpfci>
オプション | 必須 | デフォルト | 説明 |
---|---|---|---|
最小カバレッジ | はい | - | 最低限のグローバル範囲 |
カバーされていないメソッドを許可する | いいえ | 間違い | すべてのメソッドは少なくともある程度の範囲をカバーする必要があります |
または、既存のカバレッジ結果に基づいて構成ファイルを生成します
php ベンダー/bin/phpfci ベースライン --baseDir /home/ci/workspace Coverage.xml ./phpfci.xml
ベース ディレクトリは、coverage.xml のファイルパスから減算されます。
チェックスタイル形式:
php ベンダー/bin/phpfci 検査カバレッジ.xml --reportCheckstyle=reports/checkstyle.xml
Gitlab 形式:
php ベンダー/bin/phpfci 検査カバレッジ.xml --reportGitlab=reports/gitlab.errors.json
Gitlab 形式でファイルに出力し、テキストを標準出力に出力します。
php ベンダー/bin/phpfci 検査カバレッジ.xml --reportGitlab=reports/gitlab.errors.json --reportText
標準出力へのテキスト形式:
php ベンダー/bin/phpfci 検査カバレッジ.xml php ベンダー/bin/phpfci 検査カバレッジ 1.xml カバレッジ 2.xml
php ベンダー/bin/phpfci 検査カバレッジ.xml --reportText
オプション | 価値観 | 説明 |
---|---|---|
argument 1 | inspect 、 baseline | 実行するコマンド。 |
argument 2 [ argument 3 ]... | coverage.xml [ coverage2.xml ] | phpunit クローバー カバレッジ入力ファイル。 |
--reportGitlab=[<file>] | ファイルパス、または存在しない場合は標準出力 | gitlab 形式を書き込むファイル (または stdout)。 |
--reportCheckstyle=[<file>] | ファイルパス、または存在しない場合は標準出力 | checkstyle 形式を書き込むファイル (または stdout)。 |
--reportText=[<file>] | ファイルパス、または存在しない場合は標準出力 | checkstyle 形式を書き込むファイル (または stdout)。 |
--config=<path-to-file> | phpfci.xml | 構成ファイルへのパス。 |
--baseDir=<path> | デフォルトは出力ファイルのディレクトリです | プロジェクトのルート ディレクトリは、相対パスを作成するために使用されます。 |
--exit-code-on-failure | - | 失敗した場合は終了コードを1 に設定します。 |
注: --reportGitlab
、 --reportCheckstyle
、または--reportText
が設定されていない場合は、デフォルトで--reportText=php://stdout
になります。
3 番目の必須引数と--report
削除されており、 --reportGitlab=<file>
、 --reportCheckstyle=<file>
または--reportText=<file>
に置き換える必要があります。
123inkt (Digital Revolution BV の一部) では、50 名を超える開発専門家が社内 ERP といくつかのショップの改善に毎日取り組んでいます。参加しませんか?開発者を募集しています。