Implementer kodedækning, og vis i pipelinen
Kodedækning måler procentdelen af kildekoden, der udføres under automatiserede tests. Denne måling hjælper teams med at forstå testeffektiviteten, identificere utestede kodeområder og forbedre softwarekvaliteten. Implementering af kodedækning i din CI/CD-pipeline giver indsigt i testhuller og hjælper med at opretholde standarder af høj kvalitet.
Implementeringen varierer på tværs af platforme og programmeringssprog, men kerneprincipperne forbliver konsistente. Lad os undersøge, hvordan du implementerer kodedækning i Azure Pipelines og viser resultater effektivt.
Implementering af kodedækning i Azure Pipelines
For et .NET (C#)-projekt omfatter implementering af kodedækning flere vigtige trin:
- Konfigurer test- og dækningsværktøjer: Brug en teststruktur, der understøtter kodedækningsanalyse, f.eks. NUnit, MSTest eller xUnit til .NET. Integrer et kodedækningsværktøj, f.eks. Coverlet eller OpenCover, i dit projekt. Disse værktøjer kan generere rapporter om kodedækning i forskellige formater, der er kompatible med Azure Pipelines.
- Konfigurer Azure Pipelines: Gå til dit Azure DevOps-projekt på Azure DevOps-portalen, og vælg den pipeline, hvor du vil tilføje kodedækning. Rediger pipelinekonfigurationen, og tilføj trin for at installere afhængigheder og oprette dit projekt.
- Tilføj kodedækningsopgaver: Føj opgaver til pipelinen for at køre test med kodedækning aktiveret og generere dækningsrapporter. Brug de relevante kommandolinjeargumenter for din testkørsel til at aktivere analyse af kodedækning og angive outputformatet for dækningsrapporter.
- Publicer kodedækningsrapporter: Publicer de genererede kodedækningsrapporter som artefakter, eller vedhæft dem i pipelinekørslen. Brug Azure Pipelines' indbyggede publiceringsfunktioner eller brugerdefinerede opgaver til at uploade dækningsrapporter til Azure DevOps eller eksterne tjenester.
Her er et eksempel på en pipeline, der illustrerer denne fremgangsmåde:
```yaml
trigger:
- main
pool:
vmImage: "windows-latest"
steps:
- task: UseDotNet@2
inputs:
packageType: "sdk"
version: "8.0.x"
- script: dotnet restore
displayName: "Restore Dependencies"
- script: dotnet build --configuration Release
displayName: "Build Solution"
- script: dotnet test --no-build --verbosity normal /p:CollectCoverage=true /p:CoverletOutputFormat=opencover
displayName: "Run Tests with Code Coverage"
- task: PublishCodeCoverageResults@2
inputs:
summaryFileLocation: "$(Agent.TempDirectory)/**/*.xml"
failIfCoverageEmpty: true
```
Denne pipeline genererer kodedækningsrapporter som en del af buildprocessen. Dette giver dig mulighed for at gennemse og analysere dækningsresultaterne på Azure DevOps-portalen. Hvis du vil udføre mere detaljerede analyser, kan du downloade kodedækningsartefakter og undersøge dem ved hjælp af Visual Studio (når du bruger Visual Studio Test-opgaven) eller værktøjsspecifikke indstillinger for kodedækning.
Implementering af kodedækning med GitHub Actions
Til sammenligning kan du se, hvordan du implementerer kodedækning for et .NET (C#)-projekt ved hjælp af GitHub Actions:
- Konfigurer test- og dækningsværktøjer: Som med Azure DevOps, skal du bruge en teststruktur, der understøtter kodedækningsanalyse. Kontrollér, at disse værktøjer kan generere rapporter om kodedækning i de formater, der er kompatible med GitHub.
- Opret arbejdsproces for GitHub-handlinger: Gå til mappen med .github/arbejdsprocesser på gitHub-lageret. Opret en ny YAML-fil (f.eks. ci.yml) for at definere konfigurationen af arbejdsprocessen. Definer udløsere for din arbejdsproces, f.eks. pullanmodninger eller push til bestemte forgreninger.
- Konfigurer arbejdsprocestrin: Definer trin i din arbejdsproces YAML for at konfigurere miljøet, gendanne afhængigheder, bygge dit projekt, køre test og generere rapporter om kodedækning. Sørg for, at projektets kildekode, testkonfiguration og nødvendige afhængigheder er inkluderet i lageret. Brug handlinger som handlinger/udtjekning til at tjekke dit lager, handlinger/setup-dotnet- til at konfigurere .NET Core SDK og coverallsapp/github-action eller codecov/codecov-action til at uploade rapporter om kodedækning.
Her er et eksempel på en arbejdsproces, der illustrerer denne fremgangsmåde:
```yaml
name: Code Coverage
on:
pull_request:
branches:
- main
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: "8.0.x"
- name: Restore Dependencies
run: dotnet restore
- name: Build Solution
run: dotnet build --configuration Release
- name: Run Tests
run: dotnet test --no-build --verbosity normal /p:CollectCoverage=true /p:CoverletOutputFormat=opencover
- name: Upload Code Coverage Report
uses: coverallsapp/github-action@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
```
Denne Arbejdsproces for GitHub-handlinger kører automatisk test og genererer rapporter om kodedækning, hver gang der oprettes en pullanmodning, eller kode pushes til hovedgrenen. Sørg for, at du har de nødvendige tilladelser og API-tokens til at uploade rapporter om kodedækning til tredjepartstjenester som Coveralls eller Codecov.