Delen via


Quickstart: Een GitHub-werkstroom voor testvalidatie maken

In deze quickstart leert u hoe u een GitHub-werkstroom maakt om uw .NET-broncode te testen. Automatisch testen van uw .NET-code in GitHub wordt aangeduid als continue integratie (CI), waarbij pull-aanvragen of wijzigingen in de brontriggerwerkstromen worden gebruikt om te oefenen. Naast het bouwen van de broncode zorgt het testen ervoor dat de gecompileerde broncode functioneert als de auteur. Vaker dan niet fungeren eenheidstests als onmiddellijke feedbacklus om de geldigheid van wijzigingen in broncode te waarborgen.

Vereisten

  • Een GitHub-account.
  • Een .NET-broncodeopslagplaats.

Een werkstroombestand maken

Voeg in de GitHub-opslagplaats een nieuw YAML-bestand toe aan de map .github/workflows . Kies een betekenisvolle bestandsnaam, iets dat duidelijk aangeeft wat de werkstroom moet doen. Zie Werkstroombestand voor meer informatie.

Belangrijk

GitHub vereist dat werkstroomsamenstellingsbestanden in de map .github/workflows worden geplaatst.

Werkstroombestanden definiëren doorgaans een samenstelling van een of meer GitHub Action via de jobs.<job_id>/steps[*]. Zie de werkstroomsyntaxis voor GitHub Actions voor meer informatie.

Maak een nieuw bestand met de naam build-and-test.yml, kopieer en plak de volgende YML-inhoud erin:

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

In de voorgaande werkstroomsamenstelling:

  • De name: build and test naam wordt gedefinieerd, 'build en test' wordt weergegeven in werkstroomstatusbadges.

    name: build and test
    
  • Het on knooppunt geeft de gebeurtenissen aan die de werkstroom activeren:

    on:
      push:
      pull_request:
        branches: [ main ]
        paths:
        - '**.cs'
        - '**.csproj'
    
    • Geactiveerd wanneer een push of pull_request optreedt in de main vertakking waar bestanden zijn gewijzigd die eindigen op de bestandsextensies .cs of .csproj .
  • Het env knooppunt definieert benoemde omgevingsvariabelen (env var).

    env:
      DOTNET_VERSION: '6.0.401' # The .NET SDK version to use
    
    • De omgevingsvariabele DOTNET_VERSION wordt de waarde '6.0.401'toegewezen. Er wordt later naar de omgevingsvariabele verwezen om de dotnet-versionactions/setup-dotnet@v3 GitHub Action op te geven.
  • Het jobs knooppunt bouwt de stappen uit die de werkstroom moet uitvoeren.

    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
    
    • Er is één taak, met de naam build-<os> van het <os> besturingssysteem van de strategy/matrix. De name elementen zijn runs-on dynamisch voor elke waarde in de matrix/os. Dit wordt uitgevoerd op de nieuwste versies van Ubuntu, Windows en macOS.
    • De actions/setup-dotnet@v3 GitHub Action wordt gebruikt om de .NET SDK in te stellen met de opgegeven versie van de DOTNET_VERSION omgevingsvariabele.
    • De dotnet restore opdracht wordt aangeroepen.
    • De dotnet build opdracht wordt aangeroepen.
    • De dotnet test opdracht wordt aangeroepen.

Badge Een werkstroomstatus maken

Het is gebruikelijk dat GitHub-opslagplaatsen een README.md bestand hebben in de hoofdmap van de opslagplaatsmap. Op dezelfde manier is het handig om de meest recente status voor verschillende werkstromen te rapporteren. Alle werkstromen kunnen een statusbadge genereren, die visueel aantrekkelijk zijn in het README.md-bestand . De badge Werkstroomstatus toevoegen:

  1. Selecteer in de GitHub-opslagplaats de optie Actiesnavigatie .

  2. Alle werkstromen van de opslagplaats worden aan de linkerkant weergegeven, selecteer de gewenste werkstroom en de knop met het beletselteken (...).

    • Met de knop met het beletselteken (...) worden de menuopties voor de geselecteerde werkstroom uitgevouwen.
  3. Selecteer de menuoptie Statusbadge maken.

    GitHub: Create status badge

  4. Selecteer de markdown-knop Status kopiëren.

    GitHub: Copy status badge Markdown

  5. Plak de Markdown in het README.md bestand, sla het bestand op, voer de wijzigingen door en push deze.

Zie De badge Een werkstroomstatus toevoegen voor meer informatie.

Badge Voorbeeld van testwerkstroomstatus

Geslaagd Mislukt Geen status
GitHub: test passing badge GitHub: test failing badge GitHub: test no-status badge

Zie ook

Volgende stappen