missing-test-worker-tuning-for-standard-runner
What it flags
Flags direct test-runner commands on standard GitHub-hosted runners when no visible worker tuning is present.
Why it matters
Standard GitHub-hosted runners have known CPU limits, so explicitly tuning worker count can make test runtime and contention behavior easier to reason about than relying on framework defaults alone.
This is intentionally only a suggestion. Some test suites are intentionally left on defaults or intentionally serialized for stability.
Current heuristic
The rule looks for:
- jobs running on standard GitHub-hosted runner labels such as
ubuntu-latest,windows-latest, ormacos-latest - direct test-runner commands such as
jest,vitest,playwright, orpytest - no visible worker tuning in the command, such as:
- Jest:
--maxWorkersor--runInBand - Vitest:
--maxWorkersor--minWorkers - Playwright:
--workers - pytest-xdist:
-nor--numprocesses
- Jest:
- no worker tuning in the common repository config files:
- Jest:
maxWorkersinjest.config.*or thejestfield ofpackage.json - Vitest/Vite:
maxWorkers,minWorkers, orpoolOptionsinvitest.config.*orvite.config.* - Playwright:
workersinplaywright.config.* - pytest-xdist:
-n/--numprocessesinaddoptsinpytest.ini,setup.cfg,tox.ini, orpyproject.toml
- Jest:
It intentionally ignores custom runners, larger runners, self-hosted runners, and wrapper scripts where CPU shape is not obvious from workflow YAML.
Config evidence is specific to the test runner. Jest settings do not suppress Playwright, Vitest, or pytest findings. Root configs apply to root commands, or an explicit matching config path; they do not prove tuning for another package’s working directory or a different --config file.
When to ignore it
Ignore this finding when:
- the runner is intentionally using framework defaults and that behavior is already understood
- the suite is IO-bound or contention-heavy, so more workers would not help
- worker tuning is handled in wrapper scripts that are not visible from the workflow YAML (common config files are checked automatically)
Suggested verification
- Compare runtime before and after making worker count explicit
- Check whether test stability changes under higher or lower parallelism
- Confirm that the runner label is a standard hosted runner rather than a custom CPU shape