由于Cider不支持ClojureScript的测试,在写ClojureScript的时候没法使用cider-test
在emacs里测试。好在figwheel提供比较全面的测试支持。
本文使用了practicalli的Spacemacs及Clojure配置,安装与配置方法可参考:Spacemacs, Cider 及 Reveal。
创建ClojureScript项目
使用下面的命令创建ClojureScript项目:
clojure -M:project/new figwheel-main myproject.entry -- --reagent
其中的myproject.entry
是项目名,项目入口路径为src/cljstest/entry.cljs
。
使用命令行运行测试
在项目根目录执行:
clojure -M:fig:test
运行测试时,不能使用开发模式的REPL,否则会报端口冲突错误。
如果不想打开浏览器,可修改test.cljs.edn
,取消launch-js
的注释并修改浏览器的路径,例如
:launch-js ["google-chrome-stable" "--headless" "--disable-gpu" "--repl" :open-url]
在开发时自动测试
从命令行虽然能完成测试,但在开发阶段,希望边写代码边测试时,还是很不方便。Figwheel的自动测试就显得很有用了。修改dev.cljs.edn
,配置watch-dirs
及auto-testing
选项:
^{:watch-dirs ["test" "src"]
:css-dirs ["resources/public/css"]
:auto-testing true}
{:main cljstest.entry}
在Emacs里使用cider-jack-in-cljs
启动REPL后,就可以在http://localhost:9500/figwheel-extra-main/auto-testing页面查看自动测试结果。修改代码后,figwheel会自动测试并更新结果。