orchardcore-tester
npx skills add https://github.com/orchardcms/orchardcore --skill orchardcore-tester
Agent 安装分布
Skill 文档
OrchardCore Feature Testing
This skill guides you through testing OrchardCore CMS features using browser automation with playwright-cli.
Prerequisites
- OrchardCore repository (working directory)
- .NET SDK 10.0+ installed
playwright-cliskill available
Core Workflow
Testing an OrchardCore feature follows these steps:
- Build the application
- Run the application server (background)
- Setup a test site (if needed)
- Test the feature via browser
- Verify results and clean up
Step 1: Build
dotnet build src/OrchardCore.Cms.Web/OrchardCore.Cms.Web.csproj -c Debug -f net10.0
Step 2: Run Application (Background)
Since multiple agents may run OrchardCore from different worktrees simultaneously, use a random port and run in background.
Get or Create Session Port
# Check for existing port file, or generate random port (5000-5999)
$portFile = ".orchardcore-port"
if (Test-Path $portFile) {
$port = Get-Content $portFile
} else {
$port = Get-Random -Minimum 5000 -Maximum 6000
$port | Out-File $portFile -NoNewline
}
Write-Host "Using port: $port"
Start Application in Background
# Start OrchardCore in background process
$proc = Start-Process dotnet `
-ArgumentList "run","-f","net10.0","--no-build","--urls","http://localhost:$port" `
-WorkingDirectory "src/OrchardCore.Cms.Web" `
-PassThru -NoNewWindow
# Save PID for later cleanup
$proc.Id | Out-File ".orchardcore-pid" -NoNewline
Write-Host "Started OrchardCore (PID: $($proc.Id)) on http://localhost:$port"
Wait for Application Ready
# Poll until app responds (max 60 seconds)
$port = Get-Content ".orchardcore-port"
$timeout = 60; $elapsed = 0
while ($elapsed -lt $timeout) {
try {
$response = Invoke-WebRequest -Uri "http://localhost:$port" -UseBasicParsing -TimeoutSec 2
Write-Host "Application ready at http://localhost:$port"
break
} catch {
Start-Sleep -Seconds 2
$elapsed += 2
}
}
Stop Application
# Stop the background process
if (Test-Path ".orchardcore-pid") {
$pid = Get-Content ".orchardcore-pid"
Stop-Process -Id $pid -Force -ErrorAction SilentlyContinue
Remove-Item ".orchardcore-pid" -Force
Write-Host "Stopped OrchardCore (PID: $pid)"
}
Step 3: Setup Test Site
Check if setup is needed: Navigate to the app URL – if you see a setup wizard, the site needs setup.
Reset for fresh setup (optional):
Remove-Item -Recurse -Force src/OrchardCore.Cms.Web/App_Data
Setup workflow:
# Get the port
$port = Get-Content ".orchardcore-port"
playwright-cli open http://localhost:$port
playwright-cli snapshot
# Fill: Site Name = "Test Site", Recipe = "Blog", Username = "admin",
# Email = "admin@test.com", Password = "Password1!"
# Click "Finish Setup"
See references/setup-wizard.md for detailed field mapping.
Step 4: Test Features
Important: Replace 5000 with the actual port from .orchardcore-port file.
Login to Admin
playwright-cli open http://localhost:$port/Login
playwright-cli snapshot
# Fill username: admin, password: Password1!
# Click login button
playwright-cli open http://localhost:$port/Admin
playwright-cli snapshot
Common Test Scenarios
Test Media Library:
playwright-cli open http://localhost:$port/Admin/Media
playwright-cli snapshot
Test Content Creation:
playwright-cli open http://localhost:$port/Admin/Contents/ContentItems
playwright-cli snapshot
# Click New, select content type, fill fields, publish
Enable a Feature:
playwright-cli open http://localhost:$port/Admin/Features
playwright-cli snapshot
# Search for feature, click Enable
See references/common-features.md for detailed workflows.
Step 5: Verify Results
After each action:
# Check page state
playwright-cli snapshot
# Check for JavaScript errors
playwright-cli console error
# Verify page title
playwright-cli eval "document.title"
Debugging with Log Files
Console output is not visible when running in background. Use log files instead:
# View last 50 lines of today's log
Get-Content "src/OrchardCore.Cms.Web/App_Data/logs/orchard-log-$(Get-Date -Format 'yyyy-MM-dd').log" -Tail 50
# Search for errors
Select-String -Path "src/OrchardCore.Cms.Web/App_Data/logs/orchard-log-$(Get-Date -Format 'yyyy-MM-dd').log" -Pattern "ERROR|Exception" -Context 2,5
See references/debugging.md for more debugging techniques.
Quick Reference
| Task | URL Path |
|---|---|
| Admin Dashboard | /Admin |
| Features | /Admin/Features |
| Content Items | /Admin/Contents/ContentItems |
| Media Library | /Admin/Media |
| Users | /Admin/Users/Index |
| Themes | /Admin/Themes |
Session Files
| File | Purpose |
|---|---|
.orchardcore-port |
Persisted port number for session |
.orchardcore-pid |
Process ID for cleanup |
Default Credentials
- Username: admin
- Email: admin@test.com
- Password: Password1!
References
references/admin-navigation.md– Admin URLs and UI patternsreferences/setup-wizard.md– Site setup detailsreferences/common-features.md– Feature-specific testing guidesreferences/debugging.md– Log files and troubleshootingAGENTS.md(repo root) – Build and development instructions