@@ -11,11 +11,21 @@ param(
11
11
12
12
[string ]$DefaultModuleRepository = " PSGallery" ,
13
13
14
- [string ]$TestFilter = ' '
14
+ # See: https://docs.microsoft.com/en-us/dotnet/core/testing/selective-unit-tests
15
+ [string ]$TestFilter = ' ' ,
16
+
17
+ # See: https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-test
18
+ # E.g. use @("--logger", "console;verbosity=detailed") for detailed console output instead
19
+ [string []]$TestArgs = @ (" --logger" , " trx" )
15
20
)
16
21
17
22
# Requires -Modules @ {ModuleName = " InvokeBuild" ;ModuleVersion = " 3.2.1" }
18
23
24
+ $script :dotnetTestArgs = @ (" test" )
25
+ $script :dotnetTestArgs += $TestArgs
26
+ $script :dotnetTestArgs += if ($TestFilter ) { @ (" --filter" , $TestFilter ) } else { " " }
27
+ $script :dotnetTestArgs += " --framework"
28
+
19
29
$script :IsNix = $IsLinux -or $IsMacOS
20
30
$script :IsRosetta = $IsMacOS -and (sysctl - n sysctl.proc_translated) -eq 1 # Mac M1
21
31
$script :BuildInfoPath = [System.IO.Path ]::Combine($PSScriptRoot , " src" , " PowerShellEditorServices.Hosting" , " BuildInfo.cs" )
@@ -223,31 +233,26 @@ task Build BinClean,{
223
233
exec { & $script :dotnetExe publish - c $Configuration .\src\PowerShellEditorServices.VSCode\PowerShellEditorServices.VSCode.csproj -f $script :NetRuntime.Standard }
224
234
}
225
235
226
- function DotNetTestFilter {
227
- # Reference https://docs.microsoft.com/en-us/dotnet/core/testing/selective-unit-tests
228
- if ($TestFilter ) { @ (" --filter" , $TestFilter ) } else { " " }
229
- }
230
-
231
236
task Test SetupHelpForTests, TestServer, TestE2E
232
237
233
238
task TestServer TestServerWinPS, TestServerPS7, TestServerPS72
234
239
235
240
task TestServerWinPS - If (-not $script :IsNix ) {
236
241
Set-Location .\test\PowerShellEditorServices.Test\
237
- exec { & $script :dotnetExe test -- logger trx -f $script :NetRuntime.Desktop (DotNetTestFilter) }
242
+ exec { & $script :dotnetExe $ script :dotnetTestArgs $script :NetRuntime.Desktop }
238
243
}
239
244
240
245
task TestServerPS7 - If (-not $script :IsRosetta ) {
241
246
Set-Location .\test\PowerShellEditorServices.Test\
242
247
Invoke-WithCreateDefaultHook - NewModulePath $script :PSCoreModulePath {
243
- exec { & $script :dotnetExe test -- logger trx -f $script :NetRuntime.PS7 (DotNetTestFilter) }
248
+ exec { & $script :dotnetExe $ script :dotnetTestArgs $script :NetRuntime.PS7 }
244
249
}
245
250
}
246
251
247
252
task TestServerPS72 {
248
253
Set-Location .\test\PowerShellEditorServices.Test\
249
254
Invoke-WithCreateDefaultHook - NewModulePath $script :PSCoreModulePath {
250
- exec { & $script :dotnetExe test -- logger trx -f $script :NetRuntime.PS72 (DotNetTestFilter) }
255
+ exec { & $script :dotnetExe $ script :dotnetTestArgs $script :NetRuntime.PS72 }
251
256
}
252
257
}
253
258
@@ -256,13 +261,13 @@ task TestE2E {
256
261
257
262
$env: PWSH_EXE_NAME = if ($IsCoreCLR ) { " pwsh" } else { " powershell" }
258
263
$NetRuntime = if ($IsRosetta ) { $script :NetRuntime.PS72 } else { $script :NetRuntime.PS7 }
259
- exec { & $script :dotnetExe test -- logger trx -f $NetRuntime (DotNetTestFilter) }
264
+ exec { & $script :dotnetExe $ script :dotnetTestArgs $NetRuntime }
260
265
261
266
# Run E2E tests in ConstrainedLanguage mode.
262
267
if (! $script :IsNix ) {
263
268
try {
264
269
[System.Environment ]::SetEnvironmentVariable(" __PSLockdownPolicy" , " 0x80000007" , [System.EnvironmentVariableTarget ]::Machine);
265
- exec { & $script :dotnetExe test -- logger trx -f $script :NetRuntime.PS7 (DotNetTestFilter) }
270
+ exec { & $script :dotnetExe $ script :dotnetTestArgs $script :NetRuntime.PS7 }
266
271
} finally {
267
272
[System.Environment ]::SetEnvironmentVariable(" __PSLockdownPolicy" , $null , [System.EnvironmentVariableTarget ]::Machine);
268
273
}
0 commit comments