2013-04-29 48 views
0

我跑測試與:我不能在Clojure的運行測試/ midje

lein midje :autotest 

我得到錯誤:

異常線程 「main」 java.lang.Exception的:沒有命名空間:衝刺是以.json出口發現

文件是:衝刺是/ src目錄/ sprint_is/json_export.clj

它包含代碼:

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

即使我沒有測試文件,它也會拋出此錯誤。當我創建測試文件,我得到類似的錯誤:

沒有命名空間:衝刺is.test.json出口發現

測試是:衝刺是/測試/ 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

回答

2

你在你的命名空間中的一個有一個編譯錯誤,我懷疑sprint-is.json-export

在到位桶,你有這樣的:

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

如果你堅持使用requirens宏,你可以做以下,但要知道這是不是習慣使用。

(ns sprint-is.json-export) 

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

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