-
Notifications
You must be signed in to change notification settings - Fork 3
/
RunIntegrationTests.ps1
76 lines (55 loc) · 2.21 KB
/
RunIntegrationTests.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# Copyright 2022, Adam Edwards
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
[cmdletbinding(positionalbinding=$false)]
param(
[parameter(position=0)]
[string] $TestRoot = 'test',
[string] $TestAppId,
[string] $TestAppTenant,
[string] $CIBase64TestAppCert,
[HashTable] $TestParamsPassThru
)
Set-StrictMode -Version 2
. "$psscriptroot/../../build/common-build-functions.ps1"
$baseDirectory = Get-SourceRootDirectory
$targetRoot = if ( $TestRoot ) {
join-path $baseDirectory $TestRoot
} else {
$baseDirectory
}
if ( ! ( Test-Path $targetRoot ) ) {
throw "Specified subdirectory '$targetRoot' could not be found under '$baseDirectory' -- the path '$targetRoot' is not valid."
}
# Use -Force since dot directories like .test are "hidden" on *nix without it.
$targetRootPath = (get-item -Force $targetRoot).FullName
write-verbose "Preparing to execute integration tests under directory '$targetRootPath'..."
& $psscriptroot/../../build/Init-DirectTestRun.ps1
$appCert = if ( $CIBase64TestAppCert ) {
write-verbose "CI pipeline test application credential was specified"
& $psscriptroot/Get-CIPipelineCredential.ps1 $CIBase64TestAppCert
} else {
write-verbose "No CI pipeline credential was specified, local configuration will be used for test app credential"
}
$testParams = @{}
if ( $TestAppId ) {
$testParams['TestAppId'] = $TestAppId
}
if ( $TestAppTenant ) {
$testParams['TestAppTenant'] = $TestAppTenant
}
if ( $appCert ) {
$testParams['TestAppCertificate'] = $appCert
}
& $psscriptroot/../Initialize-IntegrationTestEnvironment.ps1 @testParams
Invoke-Pester -Script $targetRootPath @TestParamsPassThru