我运行测试:
lein midje :autotest
我得到错误:
线程“main”中的异常java.lang.Exception:没有命名空间:找到sprint-is.json-export
文件位于: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
测试位于: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上询问 . 我将代码与其他项目(包括那些在我的计算机上工作的项目)进行了比较,看起来相同 .
1 回答
您在其中一个命名空间中有编译错误,我怀疑
sprint-is.json-export
在bitbucket上,你有这个:
由于未定义
noir.response
和response
,因此无法编译 .你应该有:
如果您坚持在
ns
宏之外使用require
,则可以执行以下操作,但请注意这不是惯用法 .