Skip to content
49 changes: 43 additions & 6 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,19 @@ stages:
- script: dotnet test -c $(_BuildConfig) --no-build -bl:$(BUILD.SOURCESDIRECTORY)\artifacts\TestResults\$(_BuildConfig)\TestStep.binlog --no-progress --output detailed -p:UsingDotNetTest=true
name: Test
displayName: Test
condition: and(succeeded(), eq(variables._BuildConfig, 'Debug'))
env:
DOTNET_ROOT: $(Build.SourcesDirectory)/.dotnet
NUGET_PACKAGES: $(Build.SourcesDirectory)/.packages
DOTNET_CLI_CONTEXT_VERBOSE: 1

# Integration tests are redundant in Release—they spawn child processes that already cover
# both Debug and Release configurations. Use --test-modules to run only unit tests.
# Use *.exe to cover both net4x (native exe) and net8+/net9+ (apphost exe) in a single glob.
- script: dotnet test --no-build --test-modules "artifacts/bin/*UnitTests*/$(_BuildConfig)/**/*UnitTests.exe" --results-directory $(BUILD.SOURCESDIRECTORY)\artifacts\TestResults\$(_BuildConfig) --no-progress --output detailed
Comment thread
Evangelink marked this conversation as resolved.
name: TestRelease
displayName: Test (unit tests only)
condition: and(succeeded(), eq(variables._BuildConfig, 'Release'))
env:
DOTNET_ROOT: $(Build.SourcesDirectory)/.dotnet
NUGET_PACKAGES: $(Build.SourcesDirectory)/.packages
Expand All @@ -143,14 +156,14 @@ stages:
Contents: |
**/*.binlog
TargetFolder: '$(Build.ArtifactStagingDirectory)/binlogs'
condition: always()
condition: and(always(), eq(variables._BuildConfig, 'Debug'))

- task: PublishBuildArtifacts@1
displayName: 'Publish integration tests binlogs'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/binlogs'
ArtifactName: Integration_Tests_Windows_Binlogs_$(_BuildConfig)
condition: always()
condition: and(always(), eq(variables._BuildConfig, 'Debug'))

# Upload code coverage to codecov.io
- script: dotnet msbuild -restore
Expand Down Expand Up @@ -195,6 +208,18 @@ stages:
- script: dotnet test --solution NonWindowsTests.slnf -c $(_BuildConfig) --no-build -bl:$(BUILD.SOURCESDIRECTORY)/artifacts/TestResults/$(_BuildConfig)/TestStep.binlog --no-progress --output detailed -p:UsingDotNetTest=true
name: Test
displayName: Test
condition: and(succeeded(), eq(variables._BuildConfig, 'Debug'))
env:
DOTNET_ROOT: $(Build.SourcesDirectory)/.dotnet
NUGET_PACKAGES: $(Build.SourcesDirectory)/.packages
DOTNET_CLI_CONTEXT_VERBOSE: 1

# Integration tests are redundant in Release—they spawn child processes that already cover
# both Debug and Release configurations. Use --test-modules to run only unit tests.
- script: dotnet test --no-build --test-modules "artifacts/bin/*UnitTests*/$(_BuildConfig)/**/*UnitTests.dll" --results-directory $(BUILD.SOURCESDIRECTORY)/artifacts/TestResults/$(_BuildConfig) --no-progress --output detailed
name: TestRelease
displayName: Test (unit tests only)
condition: and(succeeded(), eq(variables._BuildConfig, 'Release'))
env:
DOTNET_ROOT: $(Build.SourcesDirectory)/.dotnet
NUGET_PACKAGES: $(Build.SourcesDirectory)/.packages
Expand All @@ -214,14 +239,14 @@ stages:
Contents: |
**/*.binlog
TargetFolder: '$(Build.ArtifactStagingDirectory)/binlogs'
condition: always()
condition: and(always(), eq(variables._BuildConfig, 'Debug'))

- task: PublishBuildArtifacts@1
displayName: 'Publish integration tests binlogs'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/binlogs'
ArtifactName: Integration_Tests_Linux_Binlogs_$(_BuildConfig)
condition: always()
condition: and(always(), eq(variables._BuildConfig, 'Debug'))

- job: MacOS
timeoutInMinutes: 90
Expand Down Expand Up @@ -252,6 +277,18 @@ stages:
- script: dotnet test --solution NonWindowsTests.slnf -c $(_BuildConfig) --no-build -bl:$(BUILD.SOURCESDIRECTORY)/artifacts/TestResults/$(_BuildConfig)/TestStep.binlog --no-progress --output detailed -p:UsingDotNetTest=true
name: Test
displayName: Test
condition: and(succeeded(), eq(variables._BuildConfig, 'Debug'))
env:
DOTNET_ROOT: $(Build.SourcesDirectory)/.dotnet
NUGET_PACKAGES: $(Build.SourcesDirectory)/.packages
DOTNET_CLI_CONTEXT_VERBOSE: 1

# Integration tests are redundant in Release—they spawn child processes that already cover
# both Debug and Release configurations. Use --test-modules to run only unit tests.
- script: dotnet test --no-build --test-modules "artifacts/bin/*UnitTests*/$(_BuildConfig)/**/*UnitTests.dll" --results-directory $(BUILD.SOURCESDIRECTORY)/artifacts/TestResults/$(_BuildConfig) --no-progress --output detailed
name: TestRelease
displayName: Test (unit tests only)
condition: and(succeeded(), eq(variables._BuildConfig, 'Release'))
env:
DOTNET_ROOT: $(Build.SourcesDirectory)/.dotnet
NUGET_PACKAGES: $(Build.SourcesDirectory)/.packages
Expand All @@ -271,14 +308,14 @@ stages:
Contents: |
**/*.binlog
TargetFolder: '$(Build.ArtifactStagingDirectory)/binlogs'
condition: always()
condition: and(always(), eq(variables._BuildConfig, 'Debug'))

- task: PublishBuildArtifacts@1
displayName: 'Publish integration tests binlogs'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/binlogs'
ArtifactName: Integration_Tests_MacOS_Binlogs_$(_BuildConfig)
condition: always()
condition: and(always(), eq(variables._BuildConfig, 'Debug'))

- template: /eng/common/templates/jobs/jobs.yml
parameters:
Expand Down
Loading