Skip to content

Commit 15a7d1c

Browse files
committed
Add configurable report fn
This also borrows `require-and-resolve` from cognitect-labs#13.
1 parent cb96e80 commit 15a7d1c

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/cognitect/test_runner.clj

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@
66
[clojure.string :as str])
77
(:refer-clojure :exclude [test]))
88

9+
(defn- require-and-resolve
10+
[sym]
11+
(require (symbol (namespace sym)))
12+
(resolve sym))
13+
914
(defn- ns-filter
1015
[{:keys [namespace namespace-regex]}]
1116
(let [regexes (or namespace-regex [#".*\-test$"])]
@@ -57,12 +62,14 @@
5762
nses (->> dirs
5863
(map io/file)
5964
(mapcat find/find-namespaces-in-dir))
60-
nses (filter (ns-filter options) nses)]
65+
nses (filter (ns-filter options) nses)
66+
report (require-and-resolve (:report options 'clojure.test/report))]
6167
(println (format "\nRunning tests in %s" dirs))
6268
(dorun (map require nses))
6369
(try
6470
(filter-vars! nses (var-filter options))
65-
(apply test/run-tests nses)
71+
(with-redefs [test/report report]
72+
(apply test/run-tests nses))
6673
(finally
6774
(restore-vars! nses)))))
6875

@@ -93,6 +100,9 @@
93100
["-e" "--exclude KEYWORD" "Exclude tests with this metadata keyword."
94101
:parse-fn parse-kw
95102
:assoc-fn accumulate]
103+
["-r" "--report SYMBOL" "Use the provided report function"
104+
:parse-fn symbol
105+
:assoc-fn accumulate]
96106
["-H" "--test-help" "Display this help message"]])
97107

98108
(defn- help

0 commit comments

Comments
 (0)