progress is Karma's default, built-in reporter — the one you see if you never configure reporters at all. This lesson explains exactly how to read its output and when it's (and isn't) the right choice.
What progress Actually Shows
The progress reporter prints a running count of executed specs per browser as the suite runs, followed by a final summary line per browser showing total executed, success, and failure counts, plus total run time.
config.set({
reporters: ['progress']
});
// Example output:
// Chrome Headless 120.0.0 (Mac OS 10.15.7): Executed 42 of 42 SUCCESS (1.203 secs / 0.847 secs)
// TOTAL: 42 SUCCESS
This is Karma's default even if reporters is never explicitly configured at all.
Reading a Failing Summary
Chrome Headless 120.0.0 (Mac OS 10.15.7) Calculator adds two numbers FAILED
Expected 5 to be 6.
at <Jasmine>
at UserContext.<anonymous> (src/calculator.spec.js:8:25)
Chrome Headless 120.0.0 (Mac OS 10.15.7): Executed 42 of 42 (1 FAILED) (1.203 secs / 0.847 secs)
TOTAL: 1 FAILED, 41 SUCCESS
Each failure prints the full spec description path, the assertion message, and a stack trace.
The per-browser summary line always shows executed/total counts and timing.
The final TOTAL: line aggregates every browser's results into one pass/fail count.
A non-zero process exit code follows any failure when singleRun: true.
Progress Reporter Cheat Sheet
What each part of the output means.
Output Element
Meaning
Browser name/version line
Identifies which browser produced the following results
Executed X of Y
How many specs ran out of the total discovered
(a secs / b secs)
Total time / time excluding browser launch overhead
FAILED block
Spec path, assertion message, and stack trace
TOTAL: line
Aggregate pass/fail count across all browsers
When progress Is Genuinely Enough
For small to medium suites, and especially in CI where output is read after the fact rather than watched live, progress's compact summary is often all you need — it clearly reports failures with full context and doesn't clutter logs with one line per passing spec.
Where progress Falls Short
As suites grow very large, or when you specifically want to see every spec description scroll by (useful for confirming which specific tests exist, or spotting one running unexpectedly slowly), a reporter like spec provides much finer-grained, per-test visibility that progress intentionally omits.
progress doesn't show individual passing spec names — only failures and the final summary.
Large suites with many nested describe() blocks can benefit from spec's indented, hierarchical output.
If you need to eyeball exactly which specs exist in a suite, progress alone won't show you that.
Common Mistakes
Assuming progress shows every passing spec by name — it deliberately only calls out failures individually.
Not scrolling up far enough in long CI logs to find the full failure stack trace above the final summary.
Switching away from progress for large suites without first checking whether the more verbose output actually helps.
Missing that TOTAL: aggregates across every configured browser, not just the first one listed.
Key Takeaways
progress is Karma's built-in default reporter, requiring no extra installation.
It shows per-browser execution counts, full failure details, and a final aggregate TOTAL: line.
It's well-suited to small/medium suites and CI logs, but omits individual passing spec names.
Switch to spec (covered next) when you need finer-grained, per-test visibility.
Pro Tip
When a CI log is truncated or hard to scroll, remember that failure details in progress output always appear directly above the final per-browser summary line — search backward from TOTAL: rather than scanning from the top.
You now understand the progress reporter fully. Next, look at the more detailed spec reporter.