我用:
运行测试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上询问。我将代码与其他项目(包括那些在我的计算机上工作的项目)进行了比较,看起来相同。
答案 0 :(得分:2)
您的某个命名空间中存在编译错误,我怀疑sprint-is.json-export
在bitbucket上,你有这个:
(ns sprint-is.json-export)
(require [[noir.response :as response]])
(defn serialize [value] (response/json value))
由于noir.response
和response
未定义而无法编译。
你应该:
(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))