Konrad Mrożek
2023-06-05 9195818953cc89c190ead3f1ce5ef955dc54f9c6
commit | author | age
919581 1 (binding [*compile-files* true]
KM 2   (require 'clojure.test))
3
4 (ns test-runner
5   (:require [clojure.test :as t]))
6
7 (when-not (.exists (java.io.File. "classes"))
8   (.. (java.io.File. "classes") mkdir))
9
10 (defmulti emacs-report :type)
11
12 (defmethod emacs-report :pass
13   [m]
14   (t/with-test-out
15     (println "PASS:")))
16
17 (defn -main  [& [test-file]]
18   (binding  [*compile-files* true]
19     (compile 'test-runner)
20     (let  [test-namespaces (->> (or test-file  "test")
21                                 (java.io.File.)
22                                 (file-seq)
23                                 (filter (memfn isFile))
24                                 (map (memfn getPath))
25                                 (map load-file)
26                                 (map (comp :ns meta))
27                                 (into #{}))]
28       (run! (fn [n] (t/run-tests n)) test-namespaces))))