Adding test pipeline for common-tests (#4228)
This commit is contained in:
parent
f2201b1d8d
commit
df430901be
@ -0,0 +1,43 @@
|
||||
parameters:
|
||||
- name: TargetDirectory
|
||||
type: string
|
||||
- name: CustomTestSteps
|
||||
type: object
|
||||
default: []
|
||||
- name: EnvVars
|
||||
type: object
|
||||
default: {}
|
||||
- name: TargetTags
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
variables:
|
||||
- template: /eng/pipelines/templates/variables/globals.yml
|
||||
|
||||
stages:
|
||||
- stage: 'eng_script_tests'
|
||||
jobs:
|
||||
- job: 'Test'
|
||||
strategy:
|
||||
matrix:
|
||||
Windows:
|
||||
Pool: 'azsdk-pool-mms-win-2022-general'
|
||||
Image: 'MMS2022'
|
||||
Linux:
|
||||
Pool: azsdk-pool-mms-ubuntu-2204-general
|
||||
Image: MMSUbuntu22.04
|
||||
Mac:
|
||||
Pool: 'Azure Pipelines'
|
||||
Image: 'macos-11'
|
||||
|
||||
pool:
|
||||
name: $(Pool)
|
||||
vmImage: $(Image)
|
||||
|
||||
steps:
|
||||
- template: /eng/common/pipelines/templates/steps/run-pester-tests.yml
|
||||
parameters:
|
||||
TargetDirectory: ${{ parameters.TargetDirectory }}
|
||||
CustomTestSteps: ${{ parameters.CustomTestSteps }}
|
||||
EnvVars: ${{ parameters.EnvVars }}
|
||||
TargetTags: ${{ parameters.TargetTags }}
|
||||
55
eng/common/pipelines/templates/steps/run-pester-tests.yml
Normal file
55
eng/common/pipelines/templates/steps/run-pester-tests.yml
Normal file
@ -0,0 +1,55 @@
|
||||
parameters:
|
||||
- name: TargetDirectory
|
||||
type: string
|
||||
- name: CustomTestSteps
|
||||
type: object
|
||||
default: []
|
||||
- name: EnvVars
|
||||
type: object
|
||||
default: {}
|
||||
- name: TargetTags
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
steps:
|
||||
- pwsh: |
|
||||
Install-Module -Name Pester -Force
|
||||
displayName: Install Pester
|
||||
|
||||
# default test steps
|
||||
- ${{ if eq(length(parameters.CustomTestSteps), 0) }}:
|
||||
- pwsh: |
|
||||
$tags = "${{ parameters.TargetTags }}" -Split "," | ForEach-Object { return $_.Trim() }
|
||||
|
||||
$config = New-PesterConfiguration
|
||||
$config.CodeCoverage.Enabled = $true
|
||||
$config.TestResult.Enabled = $true
|
||||
$config.Run.PassThru = $true
|
||||
|
||||
if ($tags) {
|
||||
$config.Filter.Tag = $tags
|
||||
}
|
||||
|
||||
Invoke-Pester -Configuration $config
|
||||
displayName: Run Tests
|
||||
env: ${{ parameters.EnvVars }}
|
||||
workingDirectory: $(Build.SourcesDirectory)/${{ parameters.TargetDirectory }}
|
||||
|
||||
- ${{ if not(eq(length(parameters.CustomTestSteps), 0)) }}:
|
||||
- ${{ parameters.CustomTestSteps }}
|
||||
|
||||
- task: PublishTestResults@2
|
||||
displayName: 'Publish Test Results'
|
||||
condition: succeededOrFailed()
|
||||
inputs:
|
||||
testResultsFormat: 'NUnit'
|
||||
testResultsFiles: $(Build.SourcesDirectory)/${{ parameters.TargetDirectory }}/testResults.xml
|
||||
testRunTitle: '$(System.StageName)_$(Agent.JobName)_Tests'
|
||||
|
||||
- task: PublishCodeCoverageResults@1
|
||||
displayName: 'Publish Code Coverage to Azure DevOps'
|
||||
condition: succeededOrFailed()
|
||||
inputs:
|
||||
codeCoverageTool: 'JaCoCo'
|
||||
summaryFileLocation: '$(Build.SourcesDirectory)/${{ parameters.TargetDirectory }}/coverage.xml'
|
||||
pathToSources: '$(Build.SourcesDirectory)/${{ parameters.TargetDirectory }}'
|
||||
Loading…
Reference in New Issue
Block a user