This library is pretty interesting, but you might want to change the
single-segment namespace you have. A single-part namespace is compiled as a
bare class without an associated package, and this can result in issues
around Java interop and AOT compilation. While a single-segment namespace
is likely to be okay in most circumstances, the edge cases that crop up
mean it's use is generally discouraged. A `bolth.test` namespace might be
more suitable.

- James

On 28 April 2015 at 09:38, tcrayford <tcrayf...@gmail.com> wrote:

> Hi there,
>
> I've written a new test runner for clojure.test. It does 2 main new
> things: parallelization, and *much* better output, error reporting, and
> some surrounding formatting/running features.
>
> All the features were extracted from stuff I've accumulated in my app's
> user namespace over the last year or so in an effort to improve my own
> development experience.
>
> 1. Much improved output
>
> bolth uses the same output format as humane-test-output: it diff's data
> structures passed to = and reports the difference when reporting failing
> tests. This is a huge win for testing things in larger data structures
> (especially maps), it just tells you "yo, this key is different", not "yo
> this 30 line data structure isn't equal to the other one".
>
> It uses aviso/pretty to pretty print exception stacktraces, removing a
> bunch of the noise, making them the right way up (i.e. latest frame at the
> bottom so you don't have to scroll up all the time to find the error
> message/causing frame). There's also a tiny tools.namespace wrapper that
> lets you invoke tools.namespace and get pretty exceptions printed out
> rather than the usual garbage from the compiler.
>
> It can report the slowest N tests in the test suite, so you can debug why
> your test suite is slow easily (suites I've tried it on usually have test
> runtime dominated by a few tests, that can often be improved without too
> much effort).
>
> It reports the number of tests run, and the runtime per test, which can
> give you a goal (I typically get about 0.25ms or so per test in my app).
>
> It can clear the screen, which is useful for outputting to a repl, because
> you remove the noise from other test failures (see the gifs in the post for
> what that looks like).
>
> It can call `System/exit` with an good exit code based on if the tests
> passed or not (this is off by default, because you'll only really want it
> in CI, definitely not in a repl). This stops you writing that wrapper once
> again.
>
> 2. Parallelization of test runs
>
> Bolth parallelizes test runs. This means it's only suitable for test
> suites where each test is completely isolated from the others (the easiest
> way to achieve this is having a test suite that's purely in memory, but
> it's possible to isolate databases as well, just not a thing I've done).
>
> You can read more about it here:
> http://yellerapp.com/posts/2015-04-23-bolth.html
>
> Enjoy!
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to