Skip to content

Commit 7c99bbd

Browse files
committed
Include doc blocks tests in code coverage report
Tests generated from docs contribute to code coverage so might as well include them in code coverage report. Split out coverage from clj_tests.clj to its own coverage.clj script.
1 parent f33e9e6 commit 7c99bbd

File tree

4 files changed

+38
-14
lines changed

4 files changed

+38
-14
lines changed

.github/workflows/code-coverage.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
run: clojure -Spath
4343

4444
- name: Run Tests with Code Coverage
45-
run: bb ./script/clj_tests.clj --coverage
45+
run: bb ./script/coverage.clj
4646

4747
- name: Upload Code Coverage Results
4848
run: bash <(curl -s https://codecov.io/bash) -f target/coverage/codecov.json

script/clj_tests.clj

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
:default default-clojure-version
1919
:validate [#(some #{%} allowed-clojure-versions)
2020
(str "Must be one of: " (string/join ", " allowed-clojure-versions))]]
21-
["-c" "--coverage" "Generate code coverage report"]
2221
["-h" "--help"]])
2322

2423
(defn usage [options-summary]
@@ -47,17 +46,11 @@
4746
(status/line :error msg))
4847
(System/exit code))
4948

50-
(defn run-unit-tests[{:keys [:clojure-version :coverage]}]
51-
(let [cmd ["clojure"
52-
(str "-M:test-common:kaocha:" clojure-version)
53-
"--reporter" "documentation"]
54-
cmd (if coverage
55-
(concat cmd ["--plugin" "cloverage" "--codecov"])
56-
cmd)]
57-
(if coverage
58-
(status/line :info (str "generating test coverage report against clojure v" clojure-version))
59-
(status/line :info (str "testing clojure source against clojure v" clojure-version)))
60-
(shell/command cmd)))
49+
(defn run-unit-tests [{:keys [:clojure-version]}]
50+
(status/line :info (str "testing clojure source against clojure v" clojure-version))
51+
(shell/command ["clojure"
52+
(str "-M:test-common:kaocha:" clojure-version)
53+
"--reporter" "documentation"]))
6154

6255
(defn run-isolated-tests[{:keys [:clojure-version]}]
6356
(status/line :info (str "running isolated tests against clojure v" clojure-version))

script/coverage.clj

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/usr/bin/env bb
2+
3+
(ns coverage
4+
(:require [babashka.classpath :as cp]))
5+
6+
(cp/add-classpath "./script")
7+
(require '[helper.env :as env]
8+
'[helper.shell :as shell]
9+
'[helper.status :as status])
10+
11+
(defn generate-doc-tests []
12+
(status/line :info "Generating tests for code blocks in documents")
13+
(shell/command ["clojure" "-X:test-doc-blocks" "gen-tests"]))
14+
15+
(defn run-clj-doc-tests []
16+
(status/line :info "Running unit and code block tests under Clojure for coverage report")
17+
(shell/command ["clojure" "-M:test-common:test-docs:kaocha"
18+
"--plugin" "cloverage" "--codecov"
19+
"--profile" "coverage"
20+
"--no-randomize"
21+
"--reporter" "documentation"]))
22+
23+
(defn main []
24+
(env/assert-min-versions)
25+
(generate-doc-tests)
26+
(run-clj-doc-tests)
27+
nil)
28+
29+
(main)

tests.edn

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,7 @@
77
:source-paths ["src"]
88
:test-paths ["test-isolated"]}
99
:test-docs {:id :docs
10-
:test-paths ["target/test-doc-blocks/test"]}}]
10+
:test-paths ["target/test-doc-blocks/test"]}
11+
:coverage {:id :coverage
12+
:test-paths ["test" "target/test-doc-blocks/test"]}}]
1113
:reporter kaocha.report.progress/report}

0 commit comments

Comments
 (0)