![](/img/trans.png)
[英](clojure testing) Configure leiningen to run tests inside src (not only in the test directory)
[英]Testing in leiningen
我正在使用具有以下目錄結構的 leiningen 編寫一個小型 Clojure 項目:
project
+ src
+ org/example/project/core.clj
+ test
+ org/example/project/core.clj
當我運行lein test
,它報告它運行了 0 個測試,0 個失敗,但我故意在 test/.../core.clj 文件中放置了一個旨在失敗的測試。
我將:test-path test
行添加到我的project.clj
文件中,當我重新運行時,出現錯誤:
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 的默認測試路徑是:
test/{project-name}/test/{file-under-test}.clj
^^^^
請注意路徑中的額外test
目錄。
至於源布局。 我認為您基本上使用真實的 core.clj 文件來隱藏您的測試。 這可能就是clojure.test
找不到任何測試的原因。 您是否嘗試了不同的命名空間和文件名? 例如。 test/example/project/test_core.clj
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.