-
Notifications
You must be signed in to change notification settings - Fork 181
Closed
Labels
Description
It would be sweet to offer fail-fast functionality. Under it:
- The first failing failing test var fails that ns; and
- The first failing ns fails the test run.
Relevant code:
cider-nrepl/src/cider/nrepl/middleware/test.clj
Lines 238 to 239 in a740583
| (doseq [v vars] | |
| (each-fixture-fn (fn [] (test-var v)))))) |
cider-nrepl/src/cider/nrepl/middleware/test.clj
Lines 260 to 263 in a740583
| (doseq [[ns vars] (group-by | |
| (comp :ns meta) | |
| (query/vars var-query))] | |
| (test-ns ns vars)) |
Some inspiration:
(defn run-tests
"Like clojure.test/run-tests, but fails fast."
[& namespaces]
(let [summary (-> (->> namespaces
(reduce (bound-fn [r n]
(let [{:keys [fail error]
:as v} (clojure.test/test-ns n)
failed? (some pos? [fail error])
ret (merge-with + r v)]
(cond-> ret
failed? reduced)))
clojure.test/*initial-report-counters*))
(assoc :type :summary))]
(clojure.test/do-report summary)
summary))bbatsov