| | |
| | | (binding [*compile-files* true] |
| | | (require 'clojure.test)) |
| | | (ns test-runner) |
| | | |
| | | (ns test-runner |
| | | (:require [clojure.test :as t])) |
| | | (def class-cache-dir ".cache/classes") |
| | | (.mkdirs (java.io.File. class-cache-dir)) |
| | | |
| | | (when-not (.exists (java.io.File. "classes")) |
| | | (.. (java.io.File. "classes") mkdir)) |
| | | (defmacro with-class-cache [& body] |
| | | `(binding [*compile-path* class-cache-dir |
| | | *compile-files* true] |
| | | ~@body)) |
| | | |
| | | (with-class-cache |
| | | (require '[clojure.test :as t])) |
| | | |
| | | (defmulti vim-report :type) |
| | | |
| | |
| | | |
| | | (defmethod vim-report :fail |
| | | [m] |
| | | (t/with-test-out |
| | | (when-let [source-file (some-> t/*testing-vars* |
| | | first |
| | | meta |
| | | :file)] |
| | | (println (str "FAIL:" source-file ":" (:line m) ":" (t/testing-vars-str m) ":" (t/testing-contexts-str) ":" (:message m "FAIL"))) |
| | | (println (str "FAIL-CONTINUE:EXPECTED:" (pr-str (:expected m)))) |
| | | (println (str "FAIL-CONTINUE:ACTUAL:" (pr-str (:actual m))))))) |
| | | (t/inc-report-counter :fail) |
| | | (when-let [source-file (some-> t/*testing-vars* |
| | | first |
| | | meta |
| | | :file)] |
| | | (println (str "FAIL:" source-file ":" (:line m) ":" (t/testing-vars-str m) ":" (t/testing-contexts-str) ":" (:message m "FAIL"))) |
| | | (println (str "FAIL-CONTINUE:EXPECTED:" (pr-str (:expected m)))) |
| | | (println (str "FAIL-CONTINUE:ACTUAL:" (pr-str (:actual m)))))) |
| | | |
| | | (defn- find-line-number [source-file m] |
| | | (if (instance? Throwable (:actual m)) |
| | |
| | | |
| | | (defmethod vim-report :error |
| | | [m] |
| | | (t/inc-report-counter :error) |
| | | (when-let [source-file (some-> t/*testing-vars* |
| | | first |
| | | meta |
| | |
| | | first)) |
| | | |
| | | (defn -main [& {:strs [-test-file -test-line] :or {-test-file "test"}}] |
| | | (binding [*compile-files* true] |
| | | (with-class-cache |
| | | (compile 'test-runner) |
| | | (println "Detecting test files in" -test-file) |
| | | (let [test-files (->> -test-file |
| | |
| | | (with-redefs [t/report vim-report] |
| | | (System/exit |
| | | (if (pos? (if (and -test-file -test-line) |
| | | (let [results (t/test-vars [(find-closest-test (.. (java.io.File. -test-file) getAbsolutePath) |
| | | (parse-long -test-line))])] |
| | | |
| | | (let [results (t/run-test-var (find-closest-test (.. (java.io.File. -test-file) getAbsolutePath) |
| | | (parse-long -test-line)))] |
| | | (+ (:fail results 0) |
| | | (:error results 0))) |
| | | (reduce (fn [total-fails n] |
| | |
| | | test-namespaces))) |
| | | 1 |
| | | 0))))))) |
| | | |
| | | |
| | | |
| | | |