#+STARTUP: hidestars showall * Humane test output for clojure.test This library does two things: 1. Test output is pretty printed. 2. Equality assertions are also diffed. To use this library, include it in your dev profile: : [pjstadig/humane-test-output "0.6.0"] To activate it you will need to call ~pjstadig.humane-test-output/activate!~. One way to do this would be to put this in a ~user.clj~ file in your test classpath. This test output formatting works great with Emacs and when running Leiningen in a console. However, some IDEs are also bashing in their own versions of test formatting. If you are on a mixed team and some members need to disable humane test output, they can define the ~INHUMANE_TEST_OUTPUT~ environment variable. Once humane-test-output is activated, instead of this: : FAIL in (a-test) (humane_test_output_test.clj:7) : FIXME, I fail. : expected: (= {:foo :bar, :baz :quux, :something "a long string?", :another-key "and another value"} {:fo :bar, :baz :quux, :something "a long string?", :another-key "and another value"}) : actual: (not (= {:another-key "and another value", :foo :bar, :something "a long string?", :baz :quux} {:another-key "and another value", :something "a long string?", :fo :bar, :baz :quux})) : : FAIL in (a-test) (humane_test_output_test.clj:11) : FIXME, I fail. : expected: (= {:foo :bar, :baz :quux} {:foo :bar, :baz :quux} {:fo :bar, :baz :quux}) : actual: (not (= {:foo :bar, :baz :quux} {:foo :bar, :baz :quux} {:fo :bar, :baz :quux})) : : FAIL in (a-test) (humane_test_output_test.clj:14) : FIXME, I fail. : expected: (list? foo) : actual: (not (list? {:another-key "and another value", :foo :bar, :something "a long string?", :baz :quux})) You get this: : FAIL in (a-test) (humane_test_output_test.clj:7) : FIXME, I fail. : expected: {:another-key "and another value", : :foo :bar, : :something "a long string?", : :baz :quux} : actual: {:fo :bar} : diff: - {:baz :quux, : :something "a long string?", : :foo :bar, : :another-key "and another value"} : + {:fo :bar} : : FAIL in (a-test) (humane_test_output_test.clj:10) : FIXME, I fail. : expected: {:foo :bar, :baz :quux} : actual: {:fo :bar, :baz :quux} : diff: - {:foo :bar} : + {:fo :bar} : : FAIL in (a-test) (humane_test_output_test.clj:13) : FIXME, I fail. : expected: (list? foo) : actual: (not : (list? : {:another-key "and another value", : :foo :bar, : :something "a long string?", : :baz :quux})) ** License : Copyright © Paul Stadig and Outpace Systems, Inc. All rights reserved. : : Some small bits of code were taken from clojure.test and modified, and are : Copyright © Rich Hickey. All rights reserved. : : Distributed under the Eclipse Public License, the same as Clojure. ** Acknowledgements I am grateful for design and implementation assistance from Bryce Covert.