XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEWorkflow

【WinUI】XFE基于windows的工作流

公开
关注 0 Fork 0 Star 0
UTF-8
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 }
}