首页 文章

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

提问于
浏览
0

我运行测试:

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上询问 . 我将代码与其他项目(包括那些在我的计算机上工作的项目)进行了比较,看起来相同 .

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

1 回答

  • 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))
    

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

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

相关问题