@@ -11,11 +11,23 @@ param(
1111
1212 [string ]$DefaultModuleRepository = " PSGallery" ,
1313
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" )
1520)
1621
1722# Requires -Modules @ {ModuleName = " InvokeBuild" ;ModuleVersion = " 3.2.1" }
1823
24+ $script :dotnetTestArgs = @ (
25+ " test"
26+ $TestArgs
27+ if ($TestFilter ) { " --filter" , $TestFilter }
28+ " --framework"
29+ )
30+
1931$script :IsNix = $IsLinux -or $IsMacOS
2032$script :IsRosetta = $IsMacOS -and (sysctl - n sysctl.proc_translated) -eq 1 # Mac M1
2133$script :BuildInfoPath = [System.IO.Path ]::Combine($PSScriptRoot , " src" , " PowerShellEditorServices.Hosting" , " BuildInfo.cs" )
@@ -223,31 +235,26 @@ task Build BinClean,{
223235 exec { & $script :dotnetExe publish - c $Configuration .\src\PowerShellEditorServices.VSCode\PowerShellEditorServices.VSCode.csproj -f $script :NetRuntime.Standard }
224236}
225237
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-
231238task Test SetupHelpForTests, TestServer, TestE2E
232239
233240task TestServer TestServerWinPS, TestServerPS7, TestServerPS72
234241
235242task TestServerWinPS - If (-not $script :IsNix ) {
236243 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 }
238245}
239246
240247task TestServerPS7 - If (-not $script :IsRosetta ) {
241248 Set-Location .\test\PowerShellEditorServices.Test\
242249 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 }
244251 }
245252}
246253
247254task TestServerPS72 {
248255 Set-Location .\test\PowerShellEditorServices.Test\
249256 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 }
251258 }
252259}
253260
@@ -256,13 +263,13 @@ task TestE2E {
256263
257264 $env: PWSH_EXE_NAME = if ($IsCoreCLR ) { " pwsh" } else { " powershell" }
258265 $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 }
260267
261268 # Run E2E tests in ConstrainedLanguage mode.
262269 if (! $script :IsNix ) {
263270 try {
264271 [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 }
266273 } finally {
267274 [System.Environment ]::SetEnvironmentVariable(" __PSLockdownPolicy" , $null , [System.EnvironmentVariableTarget ]::Machine);
268275 }
0 commit comments