circleci-testsuite
CircleCI Testsuite
Testsuite replaces a raw test command with .circleci/test-suites.yml + circleci testsuite run "<suite name>". This skill only gets a suite onboarded and doctor-clean — it does not enable Smarter Testing's paid features (test impact analysis, dynamic test splitting). Hand those to circleci-smarter-testing once this finishes.
Always start with:
circleci testsuite doctor "<suite name>" --json
Doctor's action_items say exactly what's wrong and how to fix it. Apply the fix, rerun doctor, repeat until checks all pass. Never run the project's raw test command or the YAML's discover/run directly to validate — always go through doctor.
- No config found — use doctor's starter
test-suites.yml, adapted to the project's real test runner. If a test step already exists (rawnpm test/pytest/go test, or legacycircleci tests split/circleci tests run), basediscover/runon it rather than inventing a new one. - JUnit atoms not matching results — usually the reporter isn't emitting a
fileattribute per test case. Fix at the source, e.g.JEST_JUNIT_ADD_FILE_ATTRIBUTE=truefor jest-junit, or--override-ini=junit_family=xunit1for pytest. - Ignore any
next_stepsabout test impact analysis, dynamic test splitting, auto-rerun, orstore-test-results— paid features, out of scope here, owned bycircleci-smarter-testing.
Once doctor is clean: replace the old test step in .circleci/config.yml with circleci testsuite run "<suite name>", and remove now-redundant legacy test-split steps. Leave any existing store_test_results job step as-is — circleci-smarter-testing replaces it later with options: store-test-results: true. Tell the user testsuite is onboarded and that circleci-smarter-testing can add test impact analysis, dynamic test splitting, or auto-rerun on top.