我无法在clojure / midje中进行测试

时间:2013-04-29 12:46:57

标签: import clojure namespaces midje

我用:

运行测试
lein midje :autotest

我得到错误:

线程“main”中的异常java.lang.Exception:没有命名空间:sprint-is.json-export found

文件位于:sprint-is / src / sprint_is / json_export.clj

它包含代码:

(ns sprint-is.json-export)
(require [[noir.response :as response]])
(defn serialize [value] (response/json value))

即使我没有测试文件,它也会抛出此错误。当我创建测试文件时,我得到类似的错误:

没有名称空间:sprint-is.test.json-export found

测试在:sprint-is / test / sprint_is / json_export.clj

并包含:

(ns sprint-is.test.json-export
    (:require [sprint-is.json-export :as json-export]))

(fact "module can serialize scalar values"
    (json-export/serialize 123) => 123)

当我尝试从REPL导入它时,它也找不到命名空间。我试图重命名文件,移动文件,重命名目录,删除ns(它编译但不起作用),在Clojure IRC上询问。我将代码与其他项目(包括那些在我的计算机上工作的项目)进行了比较,看起来相同。

源代码在这里:https://bitbucket.org/jiriknesl/sprintis

1 个答案:

答案 0 :(得分:2)

您的某个命名空间中存在编译错误,我怀疑sprint-is.json-export

在bitbucket上,你有这个:

(ns sprint-is.json-export)

(require [[noir.response :as response]])

(defn serialize [value] (response/json value))

由于noir.responseresponse未定义而无法编译。

你应该:

(ns sprint-is.json-export
   (:require [noir.response :as response]))

(defn serialize [value] (response/json value))

如果您坚持在require宏之外使用ns,则可以执行以下操作,但请注意,这不是惯用用法。

(ns sprint-is.json-export)

(require '[noir.response :as response])

(defn serialize [value] (response/json value))