From e448315e72c7b86d3fc37b2ab5f83125919498e1 Mon Sep 17 00:00:00 2001 From: Paul Stadig Date: Fri, 27 Jun 2014 13:52:43 -0400 Subject: [PATCH] Update recommendation so that it is activated in the user profile. --- README.org | 127 +++++++++++++++++++++++++++-------------------------- 1 file changed, 65 insertions(+), 62 deletions(-) diff --git a/README.org b/README.org index 774e36a..04a1933 100644 --- a/README.org +++ b/README.org @@ -3,82 +3,85 @@ 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!~. - The preferred way to do this with Leiningen is to use an injection in the dev - profile for your project: - : (defproject foo/bar "0.1.0" - : ... - : :profiles {... - : :dev {:injections [(require 'pjstadig.humane-test-output) - : (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.6.0"]] + :injections [(require 'pjstadig.humane-test-output) + (pjstadig.humane-test-output/activate!)]}} + #+END_EXAMPLE + 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. - + 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: - : 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})) - + #+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: - : 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})) + #+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* - A test containing ~(is (= oops-i-only-gave-one-argument))~ will throw an exception. + A test containing ~(is (= oops-i-only-gave-one-argument))~ will throw an + exception. ** 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.