Bun's test runner has built-in code coverage reporting. Use it to see how much of your codebase your tests cover, and where the gaps are.
Pass the --coverage flag to bun test to print a coverage report after the test run.
The report lists the source files the tests executed, the percentage of functions and lines that ran, and the line ranges that never ran.
bun test --coverage
test.test.ts:
✓ math > add [0.71ms]
✓ math > multiply [0.03ms]
✓ random [0.13ms]
-------------|---------|---------|-------------------
File | % Funcs | % Lines | Uncovered Line #s
-------------|---------|---------|-------------------
All files | 50.00 | 66.67 |
math.ts | 50.00 | 66.67 |
random.ts | 50.00 | 66.67 |
-------------|---------|---------|-------------------
3 pass
0 fail
3 expect() calls
To enable coverage reporting by default, add the following to your bunfig.toml:
bunfig.toml
[test]
coverage = true # always enable coverage
See Code coverage.