-
Bug
-
Resolution: Unresolved
-
Major
-
Windows Server 2016 Standard, Jenkins 2.150.1, powershell plugin,
I want to execute a Job in Background and grab the test results after each test.
If I execute the script from the powershell console, everything works as it should, but if I execute the same script from Jenkins, I don't receive anything. The only output I see is:
(TRANSLATION)
PS>TerminatingError(Import-Module): "The Windows PowerShell-Workflow won't be supported in an x86-based Windows PowerShell-Console. Open a x64-based Windows PowerShell-Console and try again."
(ORIGINAL-german)
PS>TerminatingError(Import-Module): "Der Windows PowerShell-Workflow wird in einer x86-basierten Windows PowerShell-Konsole nicht unterstützt. Öffnen Sie eine x64-basierte Windows PowerShell-Konsole, und versuchen Sie es erneut."
The Jenkins function is as follows and will be executed for each unit test:
The problematic code section is :
$testJob = Start-Job {param($url, $timeout) Invoke-WebRequest $url -TimeoutSec 30 -Method Get} -Arg $urlTest, $script:testTimeout
function InvokeTest ($hostName, $test) { try { $urlTest = "http://$hostName/WsTest/$test" $testJob = Start-Job {param($url, $timeout) Invoke-WebRequest $url -TimeoutSec 30 -Method Get} -Arg $urlTest, $script:testTimeout while (1) { Start-Sleep -Seconds 2 if ($testJob.State -eq "Failed") { $testExeStatus = "Test run aborted" $ErrorMessage = $testJob.ChildJobs[0].JobStateInfo.Reason.Message break } elseif ($testJob.State -eq "Completed") { $testExeStatus = "Test run completed" $testStatus = Receive-Job -Job $testJob $testResult += $testStatus.Content break } } } catch { $testExeStatus = "Test run aborted" $ErrorMessage = $_.Exception.Message break } finally { $testExeStatus $testResult } }