aboutsummaryrefslogtreecommitdiff
path: root/docs/test/coverage.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/test/coverage.md')
-rw-r--r--docs/test/coverage.md57
1 files changed, 57 insertions, 0 deletions
diff --git a/docs/test/coverage.md b/docs/test/coverage.md
new file mode 100644
index 000000000..abf8cf94c
--- /dev/null
+++ b/docs/test/coverage.md
@@ -0,0 +1,57 @@
+`bun:test` supports seeing which lines of code are covered by tests. To use this feature, pass `--coverage` to the CLI:
+
+```sh
+bun test --coverage
+```
+
+It will print out a coverage report to the console:
+
+```js
+-------------|---------|---------|-------------------
+File | % Funcs | % Lines | Uncovered Line #s
+-------------|---------|---------|-------------------
+All files | 38.89 | 42.11 |
+ index-0.ts | 33.33 | 36.84 | 10-15,19-24
+ index-1.ts | 33.33 | 36.84 | 10-15,19-24
+ index-10.ts | 33.33 | 36.84 | 10-15,19-24
+ index-2.ts | 33.33 | 36.84 | 10-15,19-24
+ index-3.ts | 33.33 | 36.84 | 10-15,19-24
+ index-4.ts | 33.33 | 36.84 | 10-15,19-24
+ index-5.ts | 33.33 | 36.84 | 10-15,19-24
+ index-6.ts | 33.33 | 36.84 | 10-15,19-24
+ index-7.ts | 33.33 | 36.84 | 10-15,19-24
+ index-8.ts | 33.33 | 36.84 | 10-15,19-24
+ index-9.ts | 33.33 | 36.84 | 10-15,19-24
+ index.ts | 100.00 | 100.00 |
+-------------|---------|---------|-------------------
+```
+
+If coverage is below a threshold, `bun:test` will exit with a non-zero exit code to indicate the failure.
+
+### Configuring coverage
+
+`bunfig.toml` supports configuring coverage:
+
+```toml
+[test]
+
+# Always enable coverage
+coverage = true
+
+# Anything less than 90% coverage will fail the test
+# coverageThreshold = 0.9
+coverageThreshold = { line = 0.9, function = 0.9 }
+
+
+# Don't include .test.* files in coverage reports
+coverageSkipTestFiles = true
+
+# Disable sourcemap support in coverage reports
+# By default, coverage reports will automatically use Bun's internal sourcemap.
+# You probably don't want to configure this
+# coverageIgnoreSourcemaps = false
+```
+
+`coverageThreshold` can be either a number or an object with `line` and `function` keys. When a number, it is treated as both the line and function threshold.
+
+Coverage support was added in Bun v0.7.2.