CircleCI Test Splitting "no timing data found"
Splitting tests by timing needs historical timing data, which comes from store_test_results on prior runs. Without it (first run, missing results, or changed paths), CircleCI falls back to a less balanced name-based split.
What this error means
The split step warns that no timing data was found and falls back to splitting by name or filesize, producing uneven parallel shards.
WARNING: no timing data found for this job. Falling back to splitting
by name. Add store_test_results to record timings for future runs.Common causes
First run on the branch
There is no prior timing data to balance against yet.
store_test_results not configured
Without storing results, timings are never recorded for future splits.
Test path or filter changed
Changing which tests are matched can invalidate prior timing buckets.
How to fix it
Record timings with store_test_results
Emit JUnit results and store them so future runs split by timing.
steps:
- run:
command: |
TESTFILES=$(circleci tests glob "test/**/*.spec.js" | circleci tests split --split-by=timings)
npx jest $TESTFILES --reporters=jest-junit
- store_test_results:
path: ./reportsHow to prevent it
- Always add store_test_results when splitting by timings.
- Keep the test glob stable so timing buckets persist.
- Expect the first run to fall back to name-based splitting.