diff --git a/eftest/src/eftest/output_capture.clj b/eftest/src/eftest/output_capture.clj index 3bf0182..f162abb 100644 --- a/eftest/src/eftest/output_capture.clj +++ b/eftest/src/eftest/output_capture.clj @@ -5,7 +5,8 @@ (def ^:dynamic *test-buffer* nil) (defn read-test-buffer [] - (String. (.toByteArray *test-buffer*))) + (when *test-buffer* + (String. (.toByteArray *test-buffer*)))) (def active-buffers (atom #{})) diff --git a/eftest/src/eftest/report/pretty.clj b/eftest/src/eftest/report/pretty.clj index 26457e7..06ed2fc 100644 --- a/eftest/src/eftest/report/pretty.clj +++ b/eftest/src/eftest/report/pretty.clj @@ -32,8 +32,16 @@ (defn- testing-vars-str [{:keys [file line]}] (let [test-var (first test/*testing-vars*)] - (str (:clojure-frame *fonts*) (-> test-var meta :ns ns-name) "/" - (:function-name *fonts*) (-> test-var meta :name) (:reset *fonts*) + (str (:clojure-frame *fonts*) + (if test-var + (-> test-var meta :ns ns-name) + "unknown-namespace") + "/" + (:function-name *fonts*) + (if test-var + (-> test-var meta :name) + "unknown-test") + (:reset *fonts*) (when (or file line) (str " (" (:source *fonts*) file ":" line (:reset *fonts*) ")"))))) diff --git a/eftest/test/eftest/report_test.clj b/eftest/test/eftest/report_test.clj index 6694408..8426c72 100644 --- a/eftest/test/eftest/report_test.clj +++ b/eftest/test/eftest/report_test.clj @@ -48,3 +48,21 @@ pretty-nil "\n") result)))) + +(deftest report-outside-testing-vars + (let [pretty-nil (puget/pprint-str nil {:print-color true + :print-meta false})] + (is (= (str "\nFAIL in unknown-namespace/unknown-test (report_test.clj:10)\nfoo\nexpected: " + pretty-nil + "\n actual: " + pretty-nil + "\n") + (with-out-str + (binding [*testing-vars* [] + pretty/*fonts* {} + *report-counters* (ref *initial-report-counters*) + *test-out* *out*] + (pretty/report {:type :fail + :message "foo" + :file "report_test.clj" + :line 10})))))))