共用方式為


快速入門:建立測試驗證 GitHub 工作流程

在本快速入門中,您將瞭解如何建立 GitHub 工作流程來測試 .NET 原始程式碼。 在 GitHub 中,自動測試您的 .NET 程式碼稱為持續整合(CI),當拉取請求或對源代碼的更改發生時,將觸發工作流程以執行測試。 除了 建置原始程式碼,測試可確保編譯的原始程式碼如作者所預期般運作。 單元測試通常做為立即的意見反應迴圈,以協助確保原始碼變更的有效性。

先決條件

  • GitHub 帳戶。
  • .NET 原始程式碼存放庫。

建立工作流程檔案

在 GitHub 存放庫中,將新的 YAML 檔案新增至 .github/workflows 目錄。 選擇有意義的檔名,會清楚指出工作流程要執行的動作。 如需詳細資訊,請參閱 工作流程檔案

這很重要

GitHub 要求將工作流程組合檔案放在 .github/workflows 目錄中。

工作流程檔案通常會透過 jobs.<job_id>/steps[*]定義一或多個 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 分支上發生變更時,將會觸發 pushpull_request
  • 節點 env 會定義具名環境變數 (env var)。

    env:
      DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
    
    • 環境變數 DOTNET_VERSION 會指派 值 '6.0.401'。 稍後會參考環境變數,以指定 dotnet-version GitHub Action 的 actions/setup-dotnet@v3
  • 節點 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>的單一作業,其中<os>是來自strategy/matrix的作業系統名稱。 nameruns-on 元素針對 matrix/os 中的每個值都是動態的。 這會在最新版本的Ubuntu、Windows和macOS上執行。
    • GitHub actions/setup-dotnet@v3 Action 用於根據DOTNET_VERSION 環境變數設定指定版本的 .NET SDK。
    • 呼叫 dotnet restore 命令。
    • 呼叫 dotnet build 命令。
    • 呼叫 dotnet test 命令。

建立工作流程狀態徽章

GitHub 存放庫通常會在存放庫目錄的根目錄有 README.md 檔案。 同樣地,最好報告各種工作流程的最新狀態。 所有工作流程都可以產生狀態徽章,這在 README.md 檔案內具有視覺吸引力。 若要新增工作流程狀態徽章:

  1. 從 GitHub 存放庫選取 [動作 ] 瀏覽選項。

  2. 所有存放庫工作流程都會顯示在左側,選取所需的工作流程和省略號 (...) 按鈕。

    • 省略號 (...) 按鈕會展開所選工作流程的功能表選項。
  3. 選取 [ 建立狀態徽章 ] 功能表選項。

    GitHub:建立狀態徽章

  4. 選取 [ 複製狀態徽章 Markdown ] 按鈕。

    GitHub:複製狀態徽章 Markdown

  5. 將 Markdown 貼入 README.md 檔案,儲存檔案,提交並推送變更。

如需詳細資訊,請參閱 新增工作流程狀態徽章

範例測試工作流程狀態徽章

通過 失敗 無狀態
GitHub:測試通過徽章 GitHub:測試失敗徽章 GitHub:測試無狀態徽章

另請參閱

後續步驟