Testing in leiningen
我正在使用leiningen用以下目录结构编写一个小型Clojure项目:
1 2 3 4 5 | project + src + org/example/project/core.clj + test + org/example/project/core.clj |
当我运行
我在
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | Exception in thread"main" java.lang.IllegalArgumentException: No implementation of method: :as-file of protocol: #'clojure.java.io/Coercions found for class: clojure.lang.Symbol (NO_SOURCE_FILE:0) at clojure.lang.Compiler.eval(Compiler.java:5440) at clojure.lang.Compiler.eval(Compiler.java:5391) at clojure.core$eval.invoke(core.clj:2382) at clojure.main$eval_opt.invoke(main.clj:235) at clojure.main$initialize.invoke(main.clj:254) at clojure.main$script_opt.invoke(main.clj:270) at clojure.main$main.doInvoke(main.clj:354) at clojure.lang.RestFn.invoke(RestFn.java:458) at clojure.lang.Var.invoke(Var.java:377) at clojure.lang.AFn.applyToHelper(AFn.java:174) at clojure.lang.Var.applyTo(Var.java:482) at clojure.main.main(main.java:37) Caused by: java.lang.IllegalArgumentException: No implementation of method: :as-file of protocol: #'clojure.java.io/Coercions found for class: clojure.lang.Symbol at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:471) at clojure.java.io$fn__7328$G__7323__7333.invoke(io.clj:34) at clojure.java.io$file.invoke(io.clj:401) at leiningen.util.ns$namespaces_in_dir.invoke(ns.clj:38) at leiningen.test$test.doInvoke(test.clj:45) at clojure.lang.RestFn.invoke(RestFn.java:411) at clojure.lang.Var.invoke(Var.java:365) at clojure.lang.AFn.applyToHelper(AFn.java:163) at clojure.lang.Var.applyTo(Var.java:482) at clojure.core$apply.invoke(core.clj:542) at leiningen.core$apply_task.invoke(core.clj:156) at leiningen.core$_main.doInvoke(core.clj:212) at clojure.lang.RestFn.applyTo(RestFn.java:138) at clojure.core$apply.invoke(core.clj:540) at leiningen.core$_main.invoke(core.clj:217) at user$eval167.invoke(NO_SOURCE_FILE:1) at clojure.lang.Compiler.eval(Compiler.java:5424) ... 11 more |
我正在运行Clojure 1.2和最新的lein(1.3.1)。
看起来clojure.core或lein代码有问题。
有同样的问题。
一段时间后,我注意到leins测试的默认路径是:
测试/ {项目名称} /测试/ {待测文件} .clj
(请注意"额外"测试目录)
至于源布局。 我认为您基本上是用真正的core.clj文件遮盖了您的测试。 这可能就是