Wednesday, January 22, 2025

Speeding Up ASP.NET Framework Unit Tests in Azure DevOp

Speeding Up ASP.NET Framework Unit Tests in Azure DevOps

Unit tests are critical for ensuring code quality, but their execution time can often slow down your CI/CD pipeline. In this article, we’ll explore strategies to accelerate unit test execution for ASP.NET Framework applications in Azure DevOps pipelines.

1. Optimize Test Parallelization

Parallelizing your tests can significantly reduce execution time. Ensure your tests are independent and can run in parallel without shared state conflicts. Use the RunSettings file to enable parallel test execution:


<!-- RunSettings file -->
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <RunConfiguration>
    <MaxCpuCount>4</MaxCpuCount>
  </RunConfiguration>
</RunSettings>
    

Include this file in your pipeline configuration.

2. Use Test Filters

Run only the necessary tests by using test filters. This is particularly useful when you’re working on a specific feature or bug fix. Update your pipeline YAML as follows:


- task: VSTest@2
  inputs:
    testSelector: 'testAssemblies'
    testAssemblyVer2: '**/*Tests.dll'
    testFiltercriteria: 'TestCategory=SmokeTest'
    runSettingsFile: '$(System.DefaultWorkingDirectory)/RunSettings.runsettings'
    diagnosticsEnabled: true
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'
    publishRunAttachments: true
    runInParallel: true
    codeCoverageEnabled: true
    testRunTitle: 'Smoke Test Execution'
    failOnMinCoverage: true
    runTestsInIsolation: true
    rerunFailedTests: true
    testRunParameters: >
      DatabaseConnectionString=$(DatabaseConnectionString);
    # Insert appropriate environment variables here.
      ServiceName=$(ServiceName);

    pipelineConfig:
      Use templates in jobs. Use mock dynamic variables to ensure business units are scoped contextually to their parent org structure

No comments :