Fork me on GitHub

I would exclude that (95%) as I am using boot with-cp -s exatly to avoid looks like it is more of a ex-info problem though, because I am not sure clojure.logging knows how to print an ex-info, I am actually going to check the source, it is better than guessing 😄


@richiardiandrea: It's likely not caused by anything in but rather the underlying logging implementation and how it prints exceptions. Some logging implementations (java.util.logging for example) will print Exceptions by calling .toString(); some (Logback for example) use .getMessage() instead.


@stuartsierra: thanks for sharing, I think this is the missing piece, I am using Log4j2 at the moment and I saw that Clojure.logging as you said just retrieves the logger instance


So I guess it is not calling toString for ERROR


Hey all. Having spent some time yak shaving with Cucumber testing clojure apps, it would appear that it’s so low-used within our community that I might be better investigating other libraries / frameworks / approaches that support acceptance / integration testing. What do you use?


clojure.test ftw 🙂


@paulspencerwilliams, a lot of people just stick with the official clojure.test. It’s battle-tested, hardy, and decidedly less fancy than the alternatives. I personally really like Jay Fields’ Expectations because it’s highly flexible and deliciously minimalist. And people tend to have a love-it-or-hate-it opinion on Midje.


I do everything in clojure.test these day mainly because it’s mostly widely adopted and it does get out of my way.


yeah, I don’t want to invest time in learning another testing framework. clojure.test is simple enough and does the job. I have testing framwork fatigue and js tooling fatigue 🙂


So plain clojure.test tests with abstractions of the web UI, and database connectivity for clean up etc?


Not sure what you mean by ‘database connectivity for clean up’.


Sorry, so cleaning up app state after each test run for the next test.


Honestly, if I’m testing, I do it all in isolation. Once you involve a database or whatever, you’re not unit testing anymore, it’s integration.


@akiva: agreed, I do most testing with isolation, but I've always relied on a set of integration tests to ensure all the units work together.


In this component example, there’s a dummy message broker. How would you actually implement this message broker?


Perhaps a core.async pubsub?


There are literally hundreds of different ways to implement a message broker, so it's difficult to give a good answer without knowing any context.