Skip to content

Commit 15583f7

Browse files
improve clojure.test integration
1 parent 228284d commit 15583f7

4 files changed

Lines changed: 28 additions & 8 deletions

File tree

data-model.org

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,11 @@
4747
| :test/pass | | | | | | | info |
4848
| :assert/pass | | | | | | | debug |
4949
| :assert/fail | | | | | | | debug |
50+
* Keys particular to c.t.
51+
| name | type |
52+
|--------------+----------------|
53+
| c.t/vars | list of symbol |
54+
| c.t/contexts | list of string |
5055
* Test Events in c.t
5156
| name | becomes | other keys |
5257
|---------------------+-------------------------+--------------------------------------------------|

src/main/clojure/clojure/test/generative/clojure_test_adapter.clj

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,19 +29,26 @@
2929
(defmethod ctevent->event :fail
3030
[e]
3131
(event/create :type :assert/fail
32-
::ctest/testing-contexts (seq ctest/*testing-contexts*)))
32+
:level :warn
33+
:message (:message e)
34+
:test/actual (:actual e)
35+
:test/expected (:expected e)
36+
:file (:file e)
37+
:line (:line e)
38+
::ctest/contexts (seq ctest/*testing-contexts*)
39+
::ctest/vars (reverse (map #(:name (meta %)) ctest/*testing-vars*))))
3340

3441
(defmethod ctevent->event :error
3542
[e]
3643
(event/create :level :error
3744
:type :error
38-
::ctest/testing-contexts (seq ctest/*testing-contexts*)
45+
::ctest/contexts (seq ctest/*testing-contexts*)
3946
:message (:message e)
4047
:test/expected (:expected e)
41-
:test/actual (:actual e)
48+
:exception (:actual e)
4249
:file (:file e)
4350
:line (:line e)
44-
::ctest/testing-vars (reverse (map #(:name (meta %)) ctest/*testing-vars*))))
51+
::ctest/vars (reverse (map #(:name (meta %)) ctest/*testing-vars*))))
4552

4653
(defmethod ctevent->event :summary
4754
[e]

src/main/clojure/clojure/test/generative/io.clj

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@
8181
#_(defmethod console-reporter :progress [m] (dot-progress m))
8282
(defmethod console-reporter :ignore [_])
8383
(defmethod console-reporter :test/test
84-
[{:keys [tags msec] :as m}]
85-
(when (and (tags :end))
84+
[{:keys [tags msec count] :as m}]
85+
(when (and (tags :end) count)
8686
(println (select-keys m [:msec :test/result :name :count]))))
8787
(defmethod console-reporter :test/group
8888
[{:keys [name tags]}]
@@ -93,6 +93,9 @@
9393
(println (str "\n"
9494
(apply str (repeat 60 "="))
9595
"\nRunning " name " tests\n")))
96-
(defmethod console-reporter :default [m] (pprint m))
96+
(defmethod console-reporter :default [m]
97+
(when-let [^Throwable t (:exception m)]
98+
(send-off serializer (fn [_] (.printStackTrace t))))
99+
(pprint m))
97100

98101

src/main/clojure/clojure/test/generative/runner.clj

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,11 @@
150150
(finally
151151
(event/report :test/group :tags #{:end} :test/threads nthreads :test/count (count fs))))))))
152152

153+
(defn has-clojure-test-tests?
154+
[ns]
155+
(or (contains? (ns-interns ns) 'test-ns-hook)
156+
(some (comp :test meta) (vals (ns-interns ns)))))
157+
153158
(defn run-all-tests
154159
"Run generative tests and clojure.test tests"
155160
[nses threads msec]
@@ -160,7 +165,7 @@
160165
(event/with-handler event-counter
161166
(event/report :test/library :name 'clojure.test)
162167
(binding [ctest/report cta/report-adapter]
163-
(apply ctest/run-tests nses))
168+
(apply ctest/run-tests (filter has-clojure-test-tests? nses)))
164169
(event/report :test/library :name 'clojure.test.generative)
165170
(run-generative-tests nses threads msec)
166171
(io/await)

0 commit comments

Comments
 (0)