@@ -11,11 +11,23 @@ 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 = @ (
25
+ " test"
26
+ $TestArgs
27
+ if ($TestFilter ) { " --filter" , $TestFilter }
28
+ " --framework"
29
+ )
30
+
19
31
$script :IsNix = $IsLinux -or $IsMacOS
20
32
$script :IsRosetta = $IsMacOS -and (sysctl - n sysctl.proc_translated) -eq 1 # Mac M1
21
33
$script :BuildInfoPath = [System.IO.Path ]::Combine($PSScriptRoot , " src" , " PowerShellEditorServices.Hosting" , " BuildInfo.cs" )
@@ -223,31 +235,26 @@ task Build BinClean,{
223
235
exec { & $script :dotnetExe publish - c $Configuration .\src\PowerShellEditorServices.VSCode\PowerShellEditorServices.VSCode.csproj -f $script :NetRuntime.Standard }
224
236
}
225
237
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
238
task Test SetupHelpForTests, TestServer, TestE2E
232
239
233
240
task TestServer TestServerWinPS, TestServerPS7, TestServerPS72
234
241
235
242
task TestServerWinPS - If (-not $script :IsNix ) {
236
243
Set-Location .\test\PowerShellEditorServices.Test\
237
- exec { & $script :dotnetExe test -- logger trx -f $script :NetRuntime.Desktop (DotNetTestFilter) }
244
+ exec { & $script :dotnetExe $ script :dotnetTestArgs $script :NetRuntime.Desktop }
238
245
}
239
246
240
247
task TestServerPS7 - If (-not $script :IsRosetta ) {
241
248
Set-Location .\test\PowerShellEditorServices.Test\
242
249
Invoke-WithCreateDefaultHook - NewModulePath $script :PSCoreModulePath {
243
- exec { & $script :dotnetExe test -- logger trx -f $script :NetRuntime.PS7 (DotNetTestFilter) }
250
+ exec { & $script :dotnetExe $ script :dotnetTestArgs $script :NetRuntime.PS7 }
244
251
}
245
252
}
246
253
247
254
task TestServerPS72 {
248
255
Set-Location .\test\PowerShellEditorServices.Test\
249
256
Invoke-WithCreateDefaultHook - NewModulePath $script :PSCoreModulePath {
250
- exec { & $script :dotnetExe test -- logger trx -f $script :NetRuntime.PS72 (DotNetTestFilter) }
257
+ exec { & $script :dotnetExe $ script :dotnetTestArgs $script :NetRuntime.PS72 }
251
258
}
252
259
}
253
260
@@ -256,13 +263,13 @@ task TestE2E {
256
263
257
264
$env: PWSH_EXE_NAME = if ($IsCoreCLR ) { " pwsh" } else { " powershell" }
258
265
$NetRuntime = if ($IsRosetta ) { $script :NetRuntime.PS72 } else { $script :NetRuntime.PS7 }
259
- exec { & $script :dotnetExe test -- logger trx -f $NetRuntime (DotNetTestFilter) }
266
+ exec { & $script :dotnetExe $ script :dotnetTestArgs $NetRuntime }
260
267
261
268
# Run E2E tests in ConstrainedLanguage mode.
262
269
if (! $script :IsNix ) {
263
270
try {
264
271
[System.Environment ]::SetEnvironmentVariable(" __PSLockdownPolicy" , " 0x80000007" , [System.EnvironmentVariableTarget ]::Machine);
265
- exec { & $script :dotnetExe test -- logger trx -f $script :NetRuntime.PS7 (DotNetTestFilter) }
272
+ exec { & $script :dotnetExe $ script :dotnetTestArgs $script :NetRuntime.PS7 }
266
273
} finally {
267
274
[System.Environment ]::SetEnvironmentVariable(" __PSLockdownPolicy" , $null , [System.EnvironmentVariableTarget ]::Machine);
268
275
}
0 commit comments