Konrad Mrożek
2023-09-06 8b8f7606f8f7189315e5582a4bd6cd1118f78583
Add diff2 to present difference between results
2 files modified
21 ■■■■■ changed files
clojure/deps.edn 2 ●●● patch | view | raw | blame | history
clojure/src/test_runner.clj 19 ●●●●● patch | view | raw | blame | history
clojure/deps.edn
@@ -1 +1 @@
{}
{:deps {lambdaisland/deep-diff2 {:mvn/version "2.10.211"}}}
clojure/src/test_runner.clj
@@ -9,8 +9,10 @@
     ~@body))
(with-class-cache
  (require '[clojure.test :as t]))
  (require '[clojure.test :as t]
           '[lambdaisland.deep-diff2 :as ddiff]))
(def no-colors-printer (ddiff/printer {:print-color false}))
(defmulti vim-report :type)
(defmethod vim-report :begin-test-ns [m]
@@ -30,6 +32,21 @@
    (println (str "FAIL-CONTINUE:EXPECTED:" (pr-str (:expected m))))
    (println (str "FAIL-CONTINUE:ACTUAL:" (pr-str (:actual m))))))
(defmethod t/assert-expr '= [msg form]
  (let [args (rest form)
        pred (first form)]
    `(let [values# (list ~@args)
           result# (apply ~pred values#)]
       (if result#
         (t/do-report {:type :pass, :message ~msg,
                       :expected '~form, :actual (cons '~pred values#)})
         (do
           (t/do-report {:type :fail, :message ~msg,
                         :expected '~form, :actual (list '~'not (cons '~pred values#))})
           (-> (apply ddiff/diff values#)
               (ddiff/pretty-print no-colors-printer))))
       result#)))
(defn- find-line-number [source-file m]
  (if (instance? Throwable (:actual m))
    (let [fname (-> source-file (java.io.File.) (.getName))]