azure-pipelines-test.yml 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. parameters:
  2. - name: ImageNames
  3. type: object
  4. default:
  5. Linux: "ubuntu-latest"
  6. Windows: "windows-latest"
  7. macOS: "macos-latest"
  8. - name: TestProjects
  9. type: string
  10. default: "tests/**/*Tests.csproj"
  11. - name: DotNetSdkVersion
  12. type: string
  13. default: 3.1.100
  14. jobs:
  15. - job: MainTest
  16. displayName: Main Test
  17. strategy:
  18. matrix:
  19. ${{ each imageName in parameters.ImageNames }}:
  20. ${{ imageName.key }}:
  21. ImageName: ${{ imageName.value }}
  22. maxParallel: 3
  23. pool:
  24. vmImage: "$(ImageName)"
  25. steps:
  26. - checkout: self
  27. clean: true
  28. submodules: true
  29. persistCredentials: false
  30. - task: UseDotNet@2
  31. displayName: "Update DotNet"
  32. inputs:
  33. packageType: sdk
  34. version: ${{ parameters.DotNetSdkVersion }}
  35. - task: DotNetCoreCLI@2
  36. displayName: Run .NET Core CLI tests
  37. inputs:
  38. command: "test"
  39. projects: ${{ parameters.TestProjects }}
  40. arguments: '--configuration Release --collect:"XPlat Code Coverage" --settings tests/coverletArgs.runsettings --verbosity minimal "-p:GenerateDocumentationFile=False"'
  41. publishTestResults: true
  42. testRunTitle: $(Agent.JobName)
  43. workingDirectory: "$(Build.SourcesDirectory)"
  44. - task: Palmmedia.reportgenerator.reportgenerator-build-release-task.reportgenerator@4
  45. condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) # !! THIS is for V1 only V2 will/should support merging
  46. displayName: ReportGenerator (merge)
  47. inputs:
  48. reports: "$(Agent.TempDirectory)/**/coverage.cobertura.xml"
  49. targetdir: "$(Agent.TempDirectory)/merged/"
  50. reporttypes: "Cobertura"
  51. ## V2 is already in the repository but it does not work "wrong number of segments" YAML error.
  52. - task: PublishCodeCoverageResults@1
  53. condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) # !! THIS is for V1 only V2 will/should support merging
  54. displayName: Publish Code Coverage
  55. inputs:
  56. codeCoverageTool: "cobertura"
  57. #summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml' # !!THIS IS FOR V2
  58. summaryFileLocation: "$(Agent.TempDirectory)/merged/**.xml"
  59. pathToSources: $(Build.SourcesDirectory)
  60. failIfCoverageEmpty: true