Condividi tramite


Guida introduttiva: Creare un flusso di lavoro GitHub di convalida dei test

In questa guida introduttiva si apprenderà come creare un flusso di lavoro GitHub per testare il codice sorgente .NET. Il test automatico del codice .NET all'interno di GitHub è definito integrazione continua (CI), dove le richieste di pull o le modifiche al codice sorgente attivano i flussi di lavoro per essere eseguiti. Oltre alla compilazione del codice sorgente, il test garantisce che il codice sorgente compilato funzioni come previsto dall'autore. Più spesso, gli unit test fungono da ciclo di feedback immediato per garantire la validità delle modifiche apportate al codice sorgente.

Prerequisiti

  • Un account GitHub.
  • Un repository di codice sorgente .NET.

Creare un file del flusso di lavoro

Nel repository GitHub aggiungere un nuovo file YAML alla directory .github/workflows . Scegliere un nome di file significativo, un elemento che indicherà chiaramente cosa deve fare il flusso di lavoro. Per altre informazioni, vedere File del flusso di lavoro.

Importante

GitHub richiede che i file di composizione del flusso di lavoro vengano inseriti nella directory .github/workflows .

I file del flusso di lavoro definiscono in genere una composizione di una o più Azioni GitHub tramite il jobs.<job_id>/steps[*]. Per altre informazioni, vedere sintassi del flusso di lavoro per GitHub Actions.

Creare un nuovo file denominato build-and-test.yml, copiare e incollare il contenuto YML seguente:

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

Nella composizione del flusso di lavoro precedente:

  • Viene definito il nome name: build and test, "compilazione e test" verrà visualizzato nei badge di stato del flusso di lavoro.

    name: build and test
    
  • Il on nodo indica gli eventi che attivano il flusso di lavoro:

    on:
      push:
      pull_request:
        branches: [ main ]
        paths:
        - '**.cs'
        - '**.csproj'
    
    • Attivato quando un push o pull_request si verifica nel ramo main in cui i file modificati terminano con le estensioni .cs o .csproj.
  • Il env nodo definisce le variabili di ambiente denominate (env var).

    env:
      DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
    
    • Alla variabile DOTNET_VERSION di ambiente viene assegnato il valore '6.0.401'. In seguito viene fatto riferimento alla variabile di ambiente per specificare la dotnet-version della actions/setup-dotnet@v3 GitHub Action.
  • Il jobs nodo compila i passaggi da eseguire per il flusso di lavoro.

    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
    
    • Esiste un singolo lavoro, denominato build-<os>, dove <os> è il nome del sistema operativo proveniente da strategy/matrix. Gli name elementi e runs-on sono dinamici per ogni valore in matrix/os. Questa operazione verrà eseguita nelle versioni più recenti di Ubuntu, Windows e macOS.
    • GitHub actions/setup-dotnet@v3 Action viene usato per configurare .NET SDK con la versione specificata dalla DOTNET_VERSION variabile di ambiente.
    • Viene chiamato il dotnet restore comando .
    • Viene chiamato il dotnet build comando .
    • Viene chiamato il dotnet test comando .

Creare un distintivo di stato del flusso di lavoro

Per i repository GitHub è comune avere un file README.md nella radice della directory del repository. Analogamente, è bello segnalare lo stato più recente per vari flussi di lavoro. Tutti i flussi di lavoro possono generare una notifica di stato, visivamente accattivante all'interno del file README.md . Per aggiungere la notifica relativa allo stato del flusso di lavoro:

  1. Nel repository GitHub, seleziona l'opzione di navigazione Azioni.

  2. Tutti i flussi di lavoro del repository vengono visualizzati sul lato sinistro. Seleziona il flusso di lavoro desiderato e il pulsante con i puntini di sospensione (...).

    • Il pulsante con i puntini di sospensione (...) espande le opzioni di menu per il flusso di lavoro selezionato.
  3. Selezionare l'opzione di menu Crea badge di stato.

    GitHub: Crea badge di stato

  4. Selezionare il pulsante Copia lo stato del badge in Markdown.

    GitHub: Copia Markdown del badge di stato

  5. Incollare il markdown nel file README.md , salvare il file, eseguire il commit ed eseguire il push delle modifiche.

Per ulteriori informazioni, vedere Aggiungere un indicatore sullo stato del flusso di lavoro.

Notifica di stato del flusso di lavoro di test di esempio

Effimero Fallito Nessun stato
GitHub: notifica di superamento dei test GitHub: badge di test non superato GitHub: badge di test senza stato

Vedere anche

Passaggi successivi