param([string]$Output = '.artifacts/test-results', [switch]$Ui)
$ErrorActionPreference = 'Stop'
Set-Location -LiteralPath (Split-Path $PSScriptRoot)
dotnet build XFEWorkflow.slnx -p:Platform=x64 -nr:false -m:1 --nologo
if ($LASTEXITCODE -ne 0) { throw '构建失败' }
dotnet XFEWorkflow/XFEWorkflow.Test/bin/x64/Debug/net10.0-windows/XFEWorkflow.Test.dll --no-parallel --report json,junit,markdown --artifacts $Output
if ($LASTEXITCODE -ne 0) { throw '自动测试失败' }
if ($Ui) {
$uiOutput = [IO.Path]::GetFullPath((Join-Path $Output 'ui'))
$previousWorkspace = $env:XFE_WORKFLOW_DATA
$env:XFE_WORKFLOW_DATA = Join-Path $uiOutput 'workspace'
try {
$process = Start-Process -FilePath 'XFEWorkflow/XFEWorkflow/bin/x64/Debug/net10.0-windows10.0.22621.0/win-x64/XFEWorkflow.exe' -ArgumentList ('--ui-test="' + $uiOutput + '"') -WindowStyle Hidden -PassThru
if (!$process.WaitForExit(180000)) { throw 'UI 验收超时,请检查报告及测试进程' }
$result = Get-Content -LiteralPath (Join-Path $uiOutput 'ui-results.json') -Raw -Encoding UTF8 | ConvertFrom-Json
if (!$result.passed) { throw "UI 验收失败:$uiOutput" }
} finally { $env:XFE_WORKFLOW_DATA = $previousWorkspace }
}
param([string]$Output = '.artifacts/test-results', [switch]$Ui)
$ErrorActionPreference = 'Stop'
Set-Location -LiteralPath (Split-Path $PSScriptRoot)
dotnet build XFEWorkflow.slnx -p:Platform=x64 -nr:false -m:1 --nologo
if ($LASTEXITCODE -ne 0) { throw '构建失败' }
dotnet XFEWorkflow/XFEWorkflow.Test/bin/x64/Debug/net10.0-windows/XFEWorkflow.Test.dll --no-parallel --report json,junit,markdown --artifacts $Output
if ($LASTEXITCODE -ne 0) { throw '自动测试失败' }
if ($Ui) {
$uiOutput = [IO.Path]::GetFullPath((Join-Path $Output 'ui'))
$previousWorkspace = $env:XFE_WORKFLOW_DATA
$env:XFE_WORKFLOW_DATA = Join-Path $uiOutput 'workspace'
try {
$process = Start-Process -FilePath 'XFEWorkflow/XFEWorkflow/bin/x64/Debug/net10.0-windows10.0.22621.0/win-x64/XFEWorkflow.exe' -ArgumentList ('--ui-test="' + $uiOutput + '"') -WindowStyle Hidden -PassThru
if (!$process.WaitForExit(180000)) { throw 'UI 验收超时,请检查报告及测试进程' }
$result = Get-Content -LiteralPath (Join-Path $uiOutput 'ui-results.json') -Raw -Encoding UTF8 | ConvertFrom-Json
if (!$result.passed) { throw "UI 验收失败:$uiOutput" }
} finally { $env:XFE_WORKFLOW_DATA = $previousWorkspace }
}