This commit is contained in:
2026-06-21 12:32:44 +02:00
parent 107158eb04
commit be3e180137
27 changed files with 5037 additions and 20 deletions

78
tests/robot/run.ps1 Normal file
View File

@@ -0,0 +1,78 @@
# Run Aniworld Robot Framework tests on Windows (PowerShell)
# Usage: .\run.ps1 [-SuitePattern "api/auth.robot"]
# Examples:
# .\run.ps1 # Run all tests
# .\run.ps1 -SuitePattern "api/" # Run all API tests
# .\run.ps1 -SuitePattern "ui/" # Run all UI tests
param(
[string]$SuitePattern = "tests/robot/"
)
$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Definition
$robotDir = Split-Path -Parent $scriptDir
$projectDir = Split-Path -Parent $robotDir
$resultsDir = Join-Path $robotDir "results"
Write-Host "========================================" -ForegroundColor Cyan
Write-Host "Aniworld Robot Framework Test Runner" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan
Write-Host "Project dir: $projectDir"
Write-Host "Results dir: $resultsDir"
Write-Host "Suite pattern: $SuitePattern"
Write-Host ""
# Ensure we're in the project directory
Set-Location $projectDir
# Check Python
if (-not (Get-Command python -ErrorAction SilentlyContinue)) {
Write-Error "Error: python not found in PATH"
exit 1
}
# Install/update Robot Framework dependencies
Write-Host "Installing Robot Framework dependencies..." -ForegroundColor Yellow
& python -m pip install -q robotframework robotframework-browser robotframework-requests robotframework-jsonlibrary 2>$null
# Initialize Browser library (Playwright)
Write-Host "Initializing Browser library (Playwright)..." -ForegroundColor Yellow
& python -m Browser.entry init 2>$null
if ($LASTEXITCODE -ne 0) {
Write-Warning "Browser library init may need manual run: 'rfbrowser init'"
}
# Create results directory
New-Item -ItemType Directory -Force -Path $resultsDir | Out-Null
# Run tests
Write-Host ""
Write-Host "Running Robot Framework tests..." -ForegroundColor Green
Write-Host "----------------------------------------" -ForegroundColor Green
& robot `
--outputdir $resultsDir `
--logtitle "Aniworld Test Log" `
--reporttitle "Aniworld Test Report" `
--metadata Project:Aniworld `
--metadata Environment:"$(& python --version)" `
--variable BASE_URL:http://127.0.0.1:8765 `
--variable BROWSER:chromium `
--variable HEADLESS:True `
$SuitePattern
$exitCode = $LASTEXITCODE
Write-Host ""
Write-Host "========================================" -ForegroundColor Cyan
if ($exitCode -eq 0) {
Write-Host "All tests PASSED" -ForegroundColor Green
} else {
Write-Host "Some tests FAILED (exit code: $exitCode)" -ForegroundColor Red
}
Write-Host "Report: $resultsDir\report.html"
Write-Host "Log: $resultsDir\log.html"
Write-Host "Output: $resultsDir\output.xml"
Write-Host "========================================" -ForegroundColor Cyan
exit $exitCode