对ClojureScript项目使用boot时,如何使外部 非CLJSJS JavaScript库可用于测试代码(vs应用程序代码)?
当应用程序代码与库包含在同一HTML页面上时,可以访问它。
(使用leiningen + figwheel,测试代码在与我的index.html
页面上的应用程序代码相同的上下文中运行 - 因此测试代码知道第三个party js library。)
boot中是否有类似的页面上下文用于测试代码?或者有没有办法conj
像["resources/third-party/library.js"]
这样的东西到源或资源路径上,这样单元测试可以引用应用程序代码所在的库?
当我运行boot auto-test
时,它会显示#object[ReferenceError ReferenceError: Can't find variable: CodeMirror]
。 CodeMirror是我案例中的第三方图书馆。我的单元测试需要一个CodeMirror实例,因此它们可以.setValue
,然后调用一堆CodeMirror方法来告诉实例要做什么,然后验证实例的新值和光标位置。我正在测试我的ClojureScript是否能够正确调用CodeMirror以获得预期的效果。
我已经能够使用最新的CLJSJS版本的CodeMirror,但它没有通过我的单元测试,而直接来自CodeMirror的最新非CLJSJS版本确实通过了。所以我猜我需要最新的CodeMirror,但尚未通过CLJSJS提供。
这是build.boot
文件的一部分:
(deftask testing []
(set-env! :source-paths #(conj % "test/cljs"))
identity)
(deftask test []
(comp (testing)
(test-cljs :js-env :phantom
:exit? true)))
(deftask auto-test []
(comp (testing)
(watch)
(test-cljs :js-env :phantom)))