あなたのGithubリポジトリでPHPとPestのテストカバレッジバッジを追加します


あなたがgithubリポジトリを横切って歩くならば、あなたは彼らのほとんどが若干のバッジを示すのを見ることができます.バッジは、コードのステータス、リポジトリ、ワークフローなどを表示するアイコンです.
GithubリポジトリのREADMEファイルでは、バッジを含めることができます.

バッジは次のとおりです.
  • パッケージバージョンを示します
  • 数ダウンロード;
  • 問題情報(合計、オープン、クローズ)…
  • テスト実行の結果
  • Githubアクションワークフローからの結果
  • など
  • バッジを生成する良いウェブサイトはhttps://shields.io/です
    あなたのニーズに合うバッジを見つけることがない場合は、1つを作成することができますか、またはあなたのニーズに固有のいくつかのツールを使用することができます.
    前回のプロジェクトでは、テストコードカバレッジを測定する必要がありました.

    Code coverage is the percentage of code which is covered by automated tests. Code coverage measurement simply determines which lines of code / instructions have been executed through a test run, and which lines / instructions have not. The percentage is calculated based on code covered and all code (number of lines of code).


    通常、テストスイートが端末で実行された場合は、コマンドライン経由で端末に結果が表示されます.
    また、“標準”形式でいくつかの特定のファイルの結果を保存するオプションがあります.
    たとえば、“クローバー”形式は、いくつかの他のニースメトリックのコードカバレッジEを報告するXMLファイルです.
    Github actionワークフローでテストスイートを実行すると、クローバー形式を読み込むことができ、カバレッジの値を使用してバッジをレンダリングする必要があります.
    次に、バッジをリポジトリにコミットする必要があります.
    要約する
  • github actionワークフローでテストを実行する
  • クローバー形式(clover . xmlファイル)でレポートを保存します
  • は「クローバー」を読む「アクション」を使います.XMLファイルは、バッジを生成し、コミット/リポジトリに新しいバッジをプッシュします.
  • READMEファイルでは、バッジ画像を含める必要があります.

    Github actionワークフローでテストを実行する
    テストを実行するには、phpunitまたはpestを使用できます.両方のツールは、クローバー形式でレポートを保存するためのオプションを持っている(PestはPHPUnitによって提供される機能を使用しています).
          - name: Execute tests (Unit and Feature tests) via PestPHP
            run: vendor/bin/pest --coverage-clover clover.xml
    
    このように、クローバー.XMLファイルが作成されます.

    バッジを作る
    バッジを作成するために、このアクションを見つけました.
    このアクション:
  • は、クローバーを読みます.XMLファイル
  • バッジファイルをカバーします.
  • オプションの
  • は、Pushstraバッジオプションを通してバッジを遂行して、押します;
  • 24579172 REPOへのバッジを押すために、あなたはRepoRankトークンをセットする必要があります.
          - name: Generate test coverage badge
            uses: timkrase/[email protected]
            with:
              coverage_badge_path: 'badge-coverage.svg'
              push_badge: true
              repo_token: ${{ secrets.GITHUB_TOKEN }}
    
    さて、メインブランチでコードをプッシュするたびに、テストスイートが実行されバッジが更新されます.
    phpunit-coverage-badge
    READMEファイルの更新
    バッジファイルが作成されたので、READMEファイルにイメージの典型的なマークダウン構文を含める必要があります.
    [![Test Coverage](https://raw.githubusercontent.com/Hi-Folks/array/main/badge-coverage.svg)](https://packagist.org/packages/hi-folks/array)
    
    Hi - Files/Arrayをプロジェクトのorg/repoで置き換える必要があります.
    現在のバッジは以下の通りです.


    ワークフローファイル
    全てのYAMLファイル( . github/ワークフローディレクトリに保存する必要があります):
    name: Test Coverage PHP Package
    on:
      push:
        branches:
          - main
    
    jobs:
      laravel-tests:
        runs-on: ubuntu-latest
    
        strategy:
          matrix:
            operating-system: [ubuntu-latest]
            php-versions: [ '8.0' ]
    
        name: P${{ matrix.php-versions }} - L${{ matrix.laravel }} - ${{ matrix.operating-system}}
    
        steps:
          - uses: actions/checkout@v2
          - name: Install PHP versions
            uses: shivammathur/setup-php@v2
            with:
              php-version: ${{ matrix.php-versions }}
          - name: Install Dependencies
            run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
    
          - name: Show dir
            run: pwd
          - name: PHP Version
            run: php --version
    
          # Code quality
    
          - name: Execute tests (Unit and Feature tests) via PestPHP
            # Set environment
            env:
              SESSION_DRIVER: array
            run: vendor/bin/pest --coverage-clover clover.xml
    
          - name: Generate test coverage badge
            uses: timkrase/[email protected]
            with:
              coverage_badge_path: 'badge-coverage.svg'
              push_badge: true
              repo_token: ${{ secrets.GITHUB_TOKEN }}