首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在leiningen中测试

在leiningen中测试
EN

Stack Overflow用户
提问于 2010-10-28 21:22:23
回答 2查看 6.4K关注 0票数 4

我正在使用leiningen编写一个小的Clojure项目,目录结构如下:

代码语言:javascript
复制
project
+ src
  + org/example/project/core.clj
+ test
  + org/example/project/core.clj

当我运行lein test时,它报告说它运行了0个失败的测试,但是我故意在测试/.../core.clj文件中放置了一个设计为失败的测试。

我将行:test-path test添加到我的project.clj文件中,当我重新运行时,得到以下错误:

代码语言:javascript
复制
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代码都有问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-28 21:52:05

至于源布局。我认为你基本上是用真实的core.clj文件遮蔽了你的测试。这可能就是clojure.test找不到任何测试的原因。您是否尝试了不同的命名空间和文件名?例如:test/example/project/test_core.clj

票数 6
EN

Stack Overflow用户

发布于 2012-04-24 04:49:58

也有同样的问题。过了一段时间,我注意到leins到测试的默认路径是:

代码语言:javascript
复制
test/{project-name}/test/{file-under-test}.clj
                    ^^^^

请注意路径中有一个额外的test目录。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4043313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档