Clojure cloverage FileNotFoundException
我想使用cloverage,这样我可以检查我的代码库中有多少是由speclj测试的。但是,在将cloverage作为lein插件安装并运行:Clojure cloverage FileNotFoundException,clojure,code-coverage,speclj,Clojure,Code Coverage,Speclj,我想使用cloverage,这样我可以检查我的代码库中有多少是由speclj测试的。但是,在将cloverage作为lein插件安装并运行:lein cloverage后,我看到以下异常: Exception in thread "main" java.io.FileNotFoundException: Could not locate app/unit/core_spec__init.class or app/unit/core_spec.clj on classpath. Please ch
lein cloverage
后,我看到以下异常:
Exception in thread "main" java.io.FileNotFoundException:
Could not locate app/unit/core_spec__init.class or app/unit/core_spec.clj on classpath.
Please check that namespaces with dashes use underscores in the Clojure file name.,
compiling:(/private/var/folders/w_/yt926bqs21g44f257yz05ctsjbv948/T/form-init4597524674545750330.clj:1:125)
Caused by: java.io.FileNotFoundException: Could not locate app/component/core_spec__init.class or app/component/core_spec.clj on classpath. Please check that namespaces with dashes use underscores in the Clojure file name.
我以前没有使用过cloverage,那么如何检查我是否正确使用了它,以前有人遇到过这个问题吗
这就是我的project.clj的样子:
(defproject app version
:dependencies [
[org.clojure/clojure "1.8.0"]
[org.clojure/tools.logging "0.4.0"]
[org.clojure/tools.cli "0.3.5"]
[org.clojure/data.json "0.2.6"]
[org.postgresql/postgresql "9.4-1201-jdbc41"]
[org.slf4j/slf4j-log4j12 "1.7.25"]
[log4j/log4j "1.2.17" :exclusions [javax.mail/mail
javax.jms/jms
com.sun.jmdk/jmxtools
com.sun.jmx/jmxri]]
[metosin/compojure-api "1.1.11"]
[metosin/ring-swagger "0.24.3"]
[compojure "1.6.0"]
[cheshire "5.8.0"]
[ring "1.6.3"]
[ring/ring-json "0.4.0"]
[ring-logger "0.7.7"]
[environ "1.1.0"]
[korma "0.4.3"]
[blackwater "0.0.9"]
[prismatic/schema "1.1.7"]
[siili/humanize "0.1.1"]
[amazonica "0.3.117"]
]
:main app.cli.core
:plugins [
[lein-ring "0.12.1"]
[lein-cloverage "1.0.10"]
[speclj "3.3.2"]
]
:test-paths ["spec"]
:profiles {
:uberjar {:aot :all}
:user {
:plugins
[[cider/cider-nrepl "0.16.0"]
[lein-kibit "0.1.6"]
[nightlight/lein-nightlight "1.0.0"]
[lein-cloverage "1.0.6"]
[jonase/eastwood "0.2.3"]
[lein-cloverage "1.0.9"]
[speclj "3.3.2"]]
}
:dev {
:dependencies [
[ring-mock "0.1.3"]
[clj-http "3.7.0"]
[org.clojure/data.json "0.2.6"]
[speclj "3.3.2"]
[clj-time "0.14.2"]
[listora/again "0.1.0"]
[environ "1.1.0"]
]
}
}
)
规格/应用/组件/核心\规格clj
(ns app.component.core_spec
(:require [speclj.core :refer :all]
[clojure.data.json :as json]
[clj-http.client :as client]
[clj-time.core :as t]
[again.core :as again]
[clj-time.format :as f]
[environ.core :refer [env]]))
(describe "app"
; tests and things...
)
你的问题可能与三叶草无关。看起来您正试图
要求app.unit.core spec
,并且该文件不存在或没有正确命名(不要忘记源文件应该有下划线,而不是破折号!)该文件确实存在于该名称空间中,并且im使用下划线。相对于project.clj
,文件名和完整文件路径是什么?名称空间是app.unit.core-spec,文件路径是spec/app/unit/core\u spec.cljOh您的文件名带有连字符,而不是下划线!正如我在回答中所说,这就是问题所在。您希望将文件命名为core\u spec.clj
,而不是core-spec.clj
。此外,您是否在/app/component/core\u spec.clj
中检查了文件名?看起来stacktrace有两个单独的跟踪问题。