Open borkdude opened 5 years ago
Sorry about this, this is actually a known issue but I only had it in my personal notes. You need to manually add :paths ["test"]
to deps.edn
, the dynamic classpath handling does not get picked up by ClojureScript.
Thanks! This workaround gets me a different error:
$ bin/kaocha
WARNING: symbol already refers to: #'clojure.core/symbol in namespace: kaocha.type.cljs, being replaced by: #'kaocha.core-ext/symbol
[(Exception in thread "main" clojure.lang.ExceptionInfo: Timeout loading ClojureScript namespace speculative_kaocha.unit {:kaocha.test-plan/tests ({:kaocha.testable/type :kaocha.type.cljs/test, :kaocha.testable/id :cljs:speculative_kaocha.unit/instrumented-test, :kaocha.testable/desc "instrumented-test", :kaocha.testable/meta {:file "/Users/Borkdude/Dropbox/dev/clojure/speculative-kaocha-plugin/test/speculative_kaocha/unit.cljc", :line 6, :column 10, :end-line 6, :end-column 27}, :kaocha.type.cljs/test speculative_kaocha.unit/instrumented-test, :kaocha.plugin.randomize/sort-key 217678479}), :kaocha.plugin.randomize/sort-key 128119952, :kaocha.type.cljs/ns speculative_kaocha.unit, :kaocha.testable/meta nil, :kaocha.type.cljs/file #object[java.io.File 0x9e4388d "test/speculative_kaocha/unit.cljc"], :kaocha.testable/type :kaocha.type.cljs/ns, :kaocha.type.cljs/timeout 10000, :kaocha.testable/desc "speculative_kaocha.unit", :kaocha.type.cljs/queue #object[java.util.concurrent.LinkedBlockingQueue 0x21399e53 "[{:type :kaocha.cljs.websocket-server/disconnect, :client #object[org.httpkit.server.AsyncChannel 0x28532753 \"0.0.0.0/0.0.0.0:9753<->null\"]}]"], :kaocha.type.cljs/eval #object[kaocha.cljs.prepl$prepl$eval__4746 0x260043d "kaocha.cljs.prepl$prepl$eval__4746@260043d"], :kaocha.testable/id :cljs:speculative_kaocha.unit}
Note that cljs.main and https://github.com/Olical/cljs-test-runner do work with extra-paths from aliases.
Hi. How can I configure compiler options? I am getting this exception:
... No such namespace: jsonwebtoken, could not locate jsonwebtoken.cljs, jsonwebtoken.cljc, or JavaScript source providing "jsonwebtoken" in file ...
jsonwebtoken is js dependency present int ./node_modules
;; tests.edn
#kaocha/v1
{:tests [{:id :unit-cljs
:type :kaocha.type/cljs
:test-paths ["test"]
:cljs/compiler-options {:npm-deps {}
:target :nodejs
:optimizations :none}}]}
;; leiningen profile
{:kaocha {:source-paths ["src" "test"]
:dependencies [[lambdaisland/kaocha "0.0-529"]
[lambdaisland/kaocha-cljs "0.0-40"]]}}
;; leiningen alias
{"kaocha" ["with-profile" "kaocha" "run" "-m" "kaocha.runner" "unit-cljs"]}
I wanted to try Kaocha
instead of lein-doo
where following compiler configuration works:
{:main app.run-all
:output-to "target/test/app.js"
:output-dir "target/test"
:target :nodejs
:npm-deps {}
:optimizations :none
:pretty-print true
:source-map true}
here is the exception to the previous post:
lein kaocha
Warning: implicit hook found: lein-npm.plugin/hooks
Hooks are deprecated and will be removed in a future version.
[E]
Randomized with --seed 594234660
ERROR in unit-cljs (analyzer.cljc:4128)
Exception: clojure.lang.ExceptionInfo: null
#:clojure.error{:source nil, :line nil, :column nil, :phase :compilation}
at cljs.analyzer$analyze.invokeStatic (analyzer.cljc:4128)
cljs.analyzer$analyze.invoke (analyzer.cljc:4114)
cljs.analyzer$analyze_file$fn__2777.invoke (analyzer.cljc:4634)
cljs.analyzer$analyze_file.invokeStatic (analyzer.cljc:4629)
cljs.analyzer$analyze_file.invoke (analyzer.cljc:4587)
cljs.analyzer$analyze_file.invokeStatic (analyzer.cljc:4601)
cljs.analyzer$analyze_file.invoke (analyzer.cljc:4587)
cljs.analyzer$analyze_deps.invokeStatic (analyzer.cljc:2565)
cljs.analyzer$analyze_deps.invoke (analyzer.cljc:2541)
cljs.analyzer$ns_side_effects.invokeStatic (analyzer.cljc:3993)
cljs.analyzer$ns_side_effects.invoke (analyzer.cljc:3988)
cljs.analyzer$analyze_STAR_$fn__2657.invoke (analyzer.cljc:4112)
...
cljs.analyzer$analyze_STAR_.invokeStatic (analyzer.cljc:4112)
cljs.analyzer$analyze_STAR_.invoke (analyzer.cljc:4102)
cljs.analyzer$analyze.invokeStatic (analyzer.cljc:4131)
cljs.analyzer$analyze.invoke (analyzer.cljc:4114)
cljs.analyzer$analyze_file$fn__2777.invoke (analyzer.cljc:4634)
cljs.analyzer$analyze_file.invokeStatic (analyzer.cljc:4629)
cljs.analyzer$analyze_file.invoke (analyzer.cljc:4587)
cljs.analyzer$analyze_file.invokeStatic (analyzer.cljc:4601)
cljs.analyzer$analyze_file.invoke (analyzer.cljc:4587)
cljs.analyzer$analyze_file.invokeStatic (analyzer.cljc:4597)
cljs.analyzer$analyze_file.invoke (analyzer.cljc:4587)
kaocha.type.cljs$eval6605$fn__6606.invoke (cljs.clj:84)
...
kaocha.testable$load.invokeStatic (testable.clj:77)
kaocha.testable$load.invoke (testable.clj:64)
...
kaocha.testable$load_testables.invokeStatic (testable.clj:142)
kaocha.testable$load_testables.invoke (testable.clj:134)
kaocha.type.cljs$eval6591$fn__6592$fn__6595$fn__6596.invoke (cljs.clj:79)
cljs.compiler$with_core_cljs.invokeStatic (compiler.cljc:1417)
cljs.compiler$with_core_cljs.invoke (compiler.cljc:1406)
kaocha.type.cljs$eval6591$fn__6592$fn__6595.invoke (cljs.clj:77)
kaocha.type.cljs$eval6591$fn__6592.invoke (cljs.clj:76)
...
kaocha.testable$load.invokeStatic (testable.clj:77)
kaocha.testable$load.invoke (testable.clj:64)
...
kaocha.testable$load_testables.invokeStatic (testable.clj:142)
kaocha.testable$load_testables.invoke (testable.clj:134)
kaocha.api$test_plan.invokeStatic (api.clj:41)
kaocha.api$test_plan.invoke (api.clj:34)
kaocha.api$run$fn__3059.invoke (api.clj:85)
...
kaocha.api$run.invokeStatic (api.clj:83)
kaocha.api$run.invoke (api.clj:71)
kaocha.runner$run.invokeStatic (runner.clj:126)
kaocha.runner$run.invoke (runner.clj:68)
kaocha.runner$_main_STAR_.invokeStatic (runner.clj:156)
kaocha.runner$_main_STAR_.doInvoke (runner.clj:138)
...
kaocha.runner$_main.invokeStatic (runner.clj:167)
kaocha.runner$_main.doInvoke (runner.clj:165)
...
user$eval140.invokeStatic (form-init541779216517326435.clj:1)
user$eval140.invoke (form-init541779216517326435.clj:1)
...
Caused by: clojure.lang.ExceptionInfo: No such namespace: jsonwebtoken, could not locate jsonwebtoken.cljs, jsonwebtoken.cljc, or JavaScript source providing "jsonwebtoken" in file /project/src/app/routes/middleware/auth.cljs
{:tag :cljs/analysis-error}
at cljs.analyzer$error.invokeStatic (analyzer.cljc:751)
cljs.analyzer$error.invoke (analyzer.cljc:747)
cljs.analyzer$error.invokeStatic (analyzer.cljc:749)
cljs.analyzer$error.invoke (analyzer.cljc:747)
cljs.analyzer$analyze_deps.invokeStatic (analyzer.cljc:2567)
cljs.analyzer$analyze_deps.invoke (analyzer.cljc:2541)
cljs.analyzer$ns_side_effects.invokeStatic (analyzer.cljc:3993)
cljs.analyzer$ns_side_effects.invoke (analyzer.cljc:3988)
cljs.analyzer$analyze_STAR_$fn__2657.invoke (analyzer.cljc:4112)
...
cljs.analyzer$analyze_STAR_.invokeStatic (analyzer.cljc:4112)
cljs.analyzer$analyze_STAR_.invoke (analyzer.cljc:4102)
cljs.analyzer$analyze.invokeStatic (analyzer.cljc:4131)
cljs.analyzer$analyze.invoke (analyzer.cljc:4114)
cljs.analyzer$analyze_file$fn__2777.invoke (analyzer.cljc:4634)
cljs.analyzer$analyze_file.invokeStatic (analyzer.cljc:4629)
cljs.analyzer$analyze_file.invoke (analyzer.cljc:4587)
cljs.analyzer$analyze_file.invokeStatic (analyzer.cljc:4601)
cljs.analyzer$analyze_file.invoke (analyzer.cljc:4587)
cljs.analyzer$analyze_deps.invokeStatic (analyzer.cljc:2565)
cljs.analyzer$analyze_deps.invoke (analyzer.cljc:2541)
cljs.analyzer$ns_side_effects.invokeStatic (analyzer.cljc:3993)
cljs.analyzer$ns_side_effects.invoke (analyzer.cljc:3988)
cljs.analyzer$analyze_STAR_$fn__2657.invoke (analyzer.cljc:4112)
...
cljs.analyzer$analyze_STAR_.invokeStatic (analyzer.cljc:4112)
cljs.analyzer$analyze_STAR_.invoke (analyzer.cljc:4102)
cljs.analyzer$analyze.invokeStatic (analyzer.cljc:4131)
cljs.analyzer$analyze.invoke (analyzer.cljc:4114)
cljs.analyzer$analyze_file$fn__2777.invoke (analyzer.cljc:4634)
cljs.analyzer$analyze_file.invokeStatic (analyzer.cljc:4629)
cljs.analyzer$analyze_file.invoke (analyzer.cljc:4587)
cljs.analyzer$analyze_file.invokeStatic (analyzer.cljc:4601)
cljs.analyzer$analyze_file.invoke (analyzer.cljc:4587)
cljs.analyzer$analyze_file.invokeStatic (analyzer.cljc:4597)
cljs.analyzer$analyze_file.invoke (analyzer.cljc:4587)
kaocha.type.cljs$eval6605$fn__6606.invoke (cljs.clj:84)
...
kaocha.testable$load.invokeStatic (testable.clj:77)
kaocha.testable$load.invoke (testable.clj:64)
...
kaocha.testable$load_testables.invokeStatic (testable.clj:142)
kaocha.testable$load_testables.invoke (testable.clj:134)
kaocha.type.cljs$eval6591$fn__6592$fn__6595$fn__6596.invoke (cljs.clj:79)
cljs.compiler$with_core_cljs.invokeStatic (compiler.cljc:1417)
cljs.compiler$with_core_cljs.invoke (compiler.cljc:1406)
kaocha.type.cljs$eval6591$fn__6592$fn__6595.invoke (cljs.clj:77)
kaocha.type.cljs$eval6591$fn__6592.invoke (cljs.clj:76)
...
kaocha.testable$load.invokeStatic (testable.clj:77)
kaocha.testable$load.invoke (testable.clj:64)
...
kaocha.testable$load_testables.invokeStatic (testable.clj:142)
kaocha.testable$load_testables.invoke (testable.clj:134)
kaocha.api$test_plan.invokeStatic (api.clj:41)
kaocha.api$test_plan.invoke (api.clj:34)
kaocha.api$run$fn__3059.invoke (api.clj:85)
...
kaocha.api$run.invokeStatic (api.clj:83)
kaocha.api$run.invoke (api.clj:71)
kaocha.runner$run.invokeStatic (runner.clj:126)
kaocha.runner$run.invoke (runner.clj:68)
kaocha.runner$_main_STAR_.invokeStatic (runner.clj:156)
kaocha.runner$_main_STAR_.doInvoke (runner.clj:138)
...
kaocha.runner$_main.invokeStatic (runner.clj:167)
kaocha.runner$_main.doInvoke (runner.clj:165)
...
user$eval140.invokeStatic (form-init541779216517326435.clj:1)
user$eval140.invoke (form-init541779216517326435.clj:1)
...
1 tests, 1 assertions, 1 errors, 0 failures.
Error encountered performing task 'run' with profile(s): 'kaocha'
Suppressed exit
@nenadalm Have you tried to specify the name of the npm
module in the :npm-deps
map? I see you're using an empty map - maybe that's the problem.
You can see an example here:
https://clojurescript.org/reference/compiler-options#npm-deps
@countgizmo I've tried, but with same result. As mentioned link says:
.. A node_modules directory will be indexed and used if set to a truthy value...
actual value of :npm-deps
is probably important only if :install-deps
is true
(https://clojurescript.org/reference/compiler-options#install-deps)
Repro: