Skip to content

Commit f6cf330

Browse files
Make dotnet test arguments configurable (#1545)
1 parent d63100c commit f6cf330

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

PowerShellEditorServices.build.ps1

+18-11
Original file line numberDiff line numberDiff line change
@@ -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-
231238
task Test SetupHelpForTests,TestServer,TestE2E
232239

233240
task TestServer TestServerWinPS,TestServerPS7,TestServerPS72
234241

235242
task 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

240247
task 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

247254
task 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

Comments
 (0)