Multimethods for Duct to run ClojureScript tests with doo.
Add these coordinates to your build tool: [duct-doo "0.1.0"]
.
There's presently (2018-05-10) an issue when trying to compile core.rrb-vector for ClojureScript. In the mean time, you should add
:exclusions [org.clojure/core.rrb-vector]
to your project.clj, and instead depend on[quantum/org.clojure.core.rrb-vector "0.0.12"]
.
Add the :duct-doo.runner/test
key to your integrant config:
;; Example
:duct-doo.runner/test
{:src-paths ["src" "test"]
:no-op? false
:doo-opts {:paths {:karma "karma --port=9000"}
:js-env :chrome-headless}
:compiler-opts {:main "your-project.test-runner"}}
- src-paths -> where cljs sources live, default src + test
- compiler-opts -> passed through to CLJS compiler
- see ClojureScript - Compiler Options
- note that
:main
key is required
- doo-opts -> options to pass through to doo
- see doo library options
- only
:js-env
key is treated specially
Write a CLJS file with the same namespace as you set under the :main
key:
(ns your-project.test-runner
(:require [doo.runner :refer-macros [doo-tests]]
[your-project.core-test] ; CHANGE US
[your-project.util-test])) ; etc...
(doo-tests 'your-project.core-test ; CHANGE US TOO
'your-project.util-test) ;
The test-runner could probably be moved inside the library, but I haven't figured out how to do that yet.
If, for example, you're working on some backend code and you don't want your ClojureScript tests to be run every time you (reset)
your REPL, set the no-op?
key to true.
Copyright © 2018 David Duthie
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.