次の方法で共有


クイックスタート: テスト検証の GitHub ワークフローを作成する

このクイックスタートでは、GitHub ワークフローを作成して .NET ソース コードをテストする方法について説明します。 GitHub 内で .NET コードを自動的にテストする方法は、継続的インテグレーション (CI) と呼ばれます。CI では、プル要求またはソースの変更により、ワークフローがトリガーされて実行されます。 ソース コードのビルドと同時に、テストによって、コンパイルされたソース コードが作成者の意図したとおりに機能することが保証されます。 多くの場合、単体テストは、ソース コードに対する変更の有効性を確保するために、即時フィードバック ループとして機能します。

前提条件

ワークフロー ファイルを作成する

GitHub リポジトリで、 .github/workflows ディレクトリに新しい YAML ファイルを追加します。 ワークフローの目的を明確に示す、わかりやすいファイル名を選択します。 詳細については、「ワークフロー ファイル」を参照してください。

重要

GitHub では、ワークフロー構成ファイルを .github/workflows ディレクトリ内に配置する必要があります。

ワークフロー ファイルにより、通常、jobs.<job_id>/steps[*] を介して 1 つ以上の GitHub Action の構成が定義されます。 詳細については、「GitHub Actions のワークフロー構文」を参照してください。

build-and-test.yml という名前の新しいファイルを作成し、次の YML の内容をコピーして貼り付けます。

name: build and test

on:
  push:
  pull_request:
    branches: [ main ]
    paths:
    - '**.cs'
    - '**.csproj'

env:
  DOTNET_VERSION: '6.0.401' # The .NET SDK version to use

jobs:
  build-and-test:

    name: build-and-test-${{matrix.os}}
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macOS-latest]

    steps:
    - uses: actions/checkout@v3
    - name: Setup .NET Core
      uses: actions/setup-dotnet@v3
      with:
        dotnet-version: ${{ env.DOTNET_VERSION }}

    - name: Install dependencies
      run: dotnet restore
      
    - name: Build
      run: dotnet build --configuration Release --no-restore
    
    - name: Test
      run: dotnet test --no-restore --verbosity normal

上記のワークフロー構成:

  • name: build and test で名前が定義され、"ビルドとテスト" がワークフローの状態バッジに表示されます。

    name: build and test
    
  • on ノードは、ワークフローをトリガーするイベントを示します。

    on:
      push:
      pull_request:
        branches: [ main ]
        paths:
        - '**.cs'
        - '**.csproj'
    
    • .cs または .csproj ファイル拡張子で終わるいずれかのファイルが変更されている main ブランチで push または pull_request が発生するとトリガーされます。
  • env ノードにより名前付き環境変数 (env var) が定義されます。

    env:
      DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
    
    • 環境変数 DOTNET_VERSION に値 '6.0.401' が割り当てられます。 この環境変数は、actions/setup-dotnet@v3 GitHub Action の dotnet-version を指定するために後で参照します。
  • jobs ノードにより、ワークフローの手順が構築されます。

    jobs:
      build-and-test:
    
        name: build-and-test-${{matrix.os}}
        runs-on: ${{ matrix.os }}
        strategy:
          matrix:
            os: [ubuntu-latest, windows-latest, macOS-latest]
    
        steps:
        - uses: actions/checkout@v3
        - name: Setup .NET Core
          uses: actions/setup-dotnet@v3
          with:
            dotnet-version: ${{ env.DOTNET_VERSION }}
    
        - name: Install dependencies
          run: dotnet restore
          
        - name: Build
          run: dotnet build --configuration Release --no-restore
        
        - name: Test
          run: dotnet test --no-restore --verbosity normal
    
    • build-<os> という名前の 1 つのジョブがあります。ここで、<os>strategy/matrix のオペレーティング システム名です。 nameruns-on の要素は、matrix/os の各値に対して動的です。 これは、Ubuntu、Windows、macOS の最新バージョンで実行されます。
    • actions/setup-dotnet@v3 GitHub Action は、DOTNET_VERSION 環境変数から指定したバージョンで .NET SDK を設定するために使用されます。
    • dotnet restore コマンドが呼び出されます。
    • dotnet build コマンドが呼び出されます。
    • dotnet test コマンドが呼び出されます。

ワークフロー状態バッジを作成する

GitHub リポジトリでは、通常、リポジトリ ディレクトリのルートに README.md ファイルを含めます。 同様に、さまざまなワークフローの最新の状態を報告することもお勧めします。 すべてのワークフローでは、README.md ファイル内で視覚に訴える状態バッジを生成できます。 ワークフロー状態バッジを追加するには、次の手順に従います。

  1. GitHub リポジトリで、 [アクション] ナビゲーション オプションを選択します。

  2. すべてのリポジトリ ワークフローが左側に表示されます。目的のワークフローと省略記号 ( [...] ) ボタンを選択します。

    • 省略記号 ( [...] ) ボタンをクリックすると、選択したワークフローのメニュー オプションが展開されます。
  3. [Create status badge](状態バッジの作成) メニュー オプションを選択します。

    GitHub: Create status badge

  4. [Copy status badge Markdown](状態バッジ Markdown のコピー) ボタンを選択します。

    GitHub: Copy status badge Markdown

  5. Markdown を README.md ファイルに貼り付け、ファイルを保存して、変更をコミットしてプッシュします。

詳細については、「ワークフロー状態バッジを追加する」を参照してください。

テスト ワークフローの状態バッジの例

成功 Failing 状態なし
GitHub: test passing badge GitHub: test failing badge GitHub: test no-status badge

関連項目

次のステップ