From 8b8f7606f8f7189315e5582a4bd6cd1118f78583 Mon Sep 17 00:00:00 2001 From: Konrad Mrożek <kmrozek@comscore.com> Date: Wed, 06 Sep 2023 11:59:12 +0000 Subject: [PATCH] Add diff2 to present difference between results --- clojure/deps.edn | 2 +- clojure/src/test_runner.clj | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/clojure/deps.edn b/clojure/deps.edn index 0967ef4..8c7e476 100644 --- a/clojure/deps.edn +++ b/clojure/deps.edn @@ -1 +1 @@ -{} +{:deps {lambdaisland/deep-diff2 {:mvn/version "2.10.211"}}} diff --git a/clojure/src/test_runner.clj b/clojure/src/test_runner.clj index af558db..e8cc9f9 100644 --- a/clojure/src/test_runner.clj +++ b/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))] -- Gitblit v1.9.3