协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
orchestrating-test-execution【开发与工程】Test coordinate parallel test execution across multiple environments and frameworks. Use when performing specialized testing. Trigger with phrases like "orchestrate tests", "run parallel tests", or "coordinate test execution".
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
name: orchestrating-test-execution description: 'Test coordinate parallel test execution across multiple environments and frameworks.
Use when performing specialized testing.
Trigger with phrases like "orchestrate tests", "run parallel tests", or "coordinate test execution".
' allowed-tools: Read, Write, Edit, Grep, Glob, Bash(test:orchestrate-*) version: 1.25.0 author: Jeremy Longshore jeremy@intentsolutions.io license: MIT tags:
Coordinate parallel test execution across multiple test suites, frameworks, and environments. Manages test splitting, worker allocation, result aggregation, and intelligent retry strategies.
jest --shard=i/N or pytest -n auto.--shard=i/N or Cypress parallelization.@flaky or equivalent marker..github/workflows/test.yml, .gitlab-ci.yml, or equivalent)| Error | Cause | Solution |
|---|---|---|
| Shard produces zero tests | Uneven test distribution or incorrect shard index | Verify shard count matches actual test file count; use file-based splitting |
| Worker out of memory | Too many parallel processes on one runner | Reduce --maxWorkers or -n count; increase runner memory; use --workerIdleMemoryLimit |
| Test ordering dependency | Tests pass in isolation but fail in specific shard order | Add --randomize flag; fix shared state leaks; enforce test independence |
| Result aggregation mismatch | Missing shard results due to job timeout | Set job-level timeouts higher than test timeouts; add result upload as a separate step |
| CI cache miss slowing startup | Dependencies not cached between parallel jobs | Configure dependency caching per lockfile hash; use a shared setup job |
GitHub Actions matrix strategy for Jest sharding:
jobs:
test:
strategy:
matrix:
shard: [1, 2, 3, 4]
steps:
- run: npx jest --shard=${{ matrix.shard }}/4 --ci --reporters=jest-junit
- uses: actions/upload-artifact@v4
with:
name: results-${{ matrix.shard }}
path: junit.xml
merge:
needs: test
steps:
- uses: actions/download-artifact@v4
- run: npx junit-merge -d results-* -o merged-results.xml
pytest-xdist parallel execution:
pytest -n auto --dist worksteal -q --junitxml=results.xml
Playwright sharded execution:
npx playwright test --shard=1/3 --reporter=junit