Skip to content

Commit 1f0a4c0

Browse files
azure-sdksima-zhu
andauthored
Adding test pipeline for common-tests (Azure#28224)
Co-authored-by: Sima Zhu <sizhu@microsoft.com>
1 parent ba3ba79 commit 1f0a4c0

File tree

2 files changed

+98
-0
lines changed

2 files changed

+98
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
parameters:
2+
- name: TargetDirectory
3+
type: string
4+
- name: CustomTestSteps
5+
type: object
6+
default: []
7+
- name: EnvVars
8+
type: object
9+
default: {}
10+
- name: TargetTags
11+
type: string
12+
default: ''
13+
14+
variables:
15+
- template: /eng/pipelines/templates/variables/globals.yml
16+
17+
stages:
18+
- stage: 'eng_script_tests'
19+
jobs:
20+
- job: 'Test'
21+
strategy:
22+
matrix:
23+
Windows:
24+
Pool: 'azsdk-pool-mms-win-2022-general'
25+
Image: 'MMS2022'
26+
Linux:
27+
Pool: azsdk-pool-mms-ubuntu-2204-general
28+
Image: MMSUbuntu22.04
29+
Mac:
30+
Pool: 'Azure Pipelines'
31+
Image: 'macos-11'
32+
33+
pool:
34+
name: $(Pool)
35+
vmImage: $(Image)
36+
37+
steps:
38+
- template: /eng/common/pipelines/templates/steps/run-pester-tests.yml
39+
parameters:
40+
TargetDirectory: ${{ parameters.TargetDirectory }}
41+
CustomTestSteps: ${{ parameters.CustomTestSteps }}
42+
EnvVars: ${{ parameters.EnvVars }}
43+
TargetTags: ${{ parameters.TargetTags }}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
parameters:
2+
- name: TargetDirectory
3+
type: string
4+
- name: CustomTestSteps
5+
type: object
6+
default: []
7+
- name: EnvVars
8+
type: object
9+
default: {}
10+
- name: TargetTags
11+
type: string
12+
default: ''
13+
14+
steps:
15+
- pwsh: |
16+
Install-Module -Name Pester -Force
17+
displayName: Install Pester
18+
19+
# default test steps
20+
- ${{ if eq(length(parameters.CustomTestSteps), 0) }}:
21+
- pwsh: |
22+
$tags = "${{ parameters.TargetTags }}" -Split "," | ForEach-Object { return $_.Trim() }
23+
24+
$config = New-PesterConfiguration
25+
$config.CodeCoverage.Enabled = $true
26+
$config.TestResult.Enabled = $true
27+
$config.Run.PassThru = $true
28+
29+
if ($tags) {
30+
$config.Filter.Tag = $tags
31+
}
32+
33+
Invoke-Pester -Configuration $config
34+
displayName: Run Tests
35+
env: ${{ parameters.EnvVars }}
36+
workingDirectory: $(Build.SourcesDirectory)/${{ parameters.TargetDirectory }}
37+
38+
- ${{ if not(eq(length(parameters.CustomTestSteps), 0)) }}:
39+
- ${{ parameters.CustomTestSteps }}
40+
41+
- task: PublishTestResults@2
42+
displayName: 'Publish Test Results'
43+
condition: succeededOrFailed()
44+
inputs:
45+
testResultsFormat: 'NUnit'
46+
testResultsFiles: $(Build.SourcesDirectory)/${{ parameters.TargetDirectory }}/testResults.xml
47+
testRunTitle: '$(System.StageName)_$(Agent.JobName)_Tests'
48+
49+
- task: PublishCodeCoverageResults@1
50+
displayName: 'Publish Code Coverage to Azure DevOps'
51+
condition: succeededOrFailed()
52+
inputs:
53+
codeCoverageTool: 'JaCoCo'
54+
summaryFileLocation: '$(Build.SourcesDirectory)/${{ parameters.TargetDirectory }}/coverage.xml'
55+
pathToSources: '$(Build.SourcesDirectory)/${{ parameters.TargetDirectory }}'

0 commit comments

Comments
 (0)