You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Yann Esposito (Yogsototh) 0323eec44b
fix
4 years ago
resources/test Add clojurescript support 4 years ago
src/pjstadig fix 4 years ago
test Fix clojure.core/= comparison 4 years ago
.dir-locals.el Initial commit. 6 years ago
.gitignore Add clojurescript support 4 years ago
README.org Clarify some information about IDEs (particularly cider) 4 years ago
project.clj Version 0.9.0-SNAPSHOT 4 years ago

README.org

Humane test output for clojure.test

    This library does two things:
  1. Test output is pretty printed.
  2. Equality assertions are also diffed.

IDEs

Version 0.8.0 and later of humane-test-output requires Clojure 1.8.0 or later. This test output formatting works great with Emacs and cider 0.10 or lower, and when running Leiningen in a console. However, some IDEs are also bashing in their own versions of test formatting.

Clojure

I do not recommend using this with cider 0.11.0 or greater or with Cursive, or LightTable, or any other IDE. To activate it you will need to call pjstadig.humane-test-output/activate!. The preferred way to do this with Leiningen is to use an injection in the :user profile in your ~/.lein/profiles.clj:

#+BEGIN_EXAMPLE {:user {:dependencies pjstadig/humane-test-output "0.8.0" :injections [(require 'pjstadig.humane-test-output) (pjstadig.humane-test-output/activate!)]}} #+END_EXAMPLE

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, though again it's better for each user to enable it in their own ~/.lein/profiles.clj.

Once humane-test-output is activated, instead of this: #+BEGIN_EXAMPLE 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})) #+END_EXAMPLE

    You get this: #+BEGIN_EXAMPLE 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})) #+END_EXAMPLE

BONUS FEATURE

ClojureScript

License

A test containing (is (= oops-i-only-gave-one-argument)) will throw an exception. It is not necessary to activate humane-test-output with ClojureScript, but the behavior should be much the same as with Clojure. #+BEGIN_EXAMPLE 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.

Acknowledgements

Distributed under the Eclipse Public License, the same as Clojure. #+END_EXAMPLE I am grateful for design and implementation assistance from Bryce Covert.

Thanks to Miloslav Nenadál for the ClojureScript implementation.