Я не могу запустить тесты в clojure/midje
Я запускаю тесты с:
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 ответ
Я подозреваю, что у вас есть ошибка компиляции в одном из ваших пространств имен 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))