ClojureScript Testing with Doo and Figwheel

Torsten Uhlmann

Tue, 22 Sep 2015

Photo by Torsten Uhlmann


These days I was playing with strategies to run ClojureScript tests. Information about this particular topic is not too easy to find, so here’s a short list of posts I found particularly useful:

The Unit test library used in these cases is cljs.test. One way to run the tests is to add a test and runner configuration to your project.clj (see the second link for an example).

Another way is to use lein-doo as a way to configure all kinds of different test runners, like Karma, SlimerJs or PhantomJs, and also watch your source directories and run tests on file change.

I was playing with that Doo configuration in my project and ran into a strange error.

My project uses a figwheel configuration, and the funny thing is, figwheel barks on this piece of Doo config:

:main 'example.runner

with the exception:

java.lang.ClassCastException:
clojure.lang.PersistentList cannot be cast to
clojure.lang.Named

To get around this problem, write the Doo config like this:

:main "example.runner"

Figwheel works again and even Doo still works :)

Hope this might help somebody…