Clojure:Timbre和clojure.test命名空间

时间:2014-04-28 05:21:29

标签: clojure namespaces timbre

尝试将Timbreclojure.test一起加载到我的测试项目中。我的第一次尝试是

(ns foo.core-test
  (:require [clojure.test :refer :all]
            [taoensso.timbre :as timbre]
            [foo.core :refer :all]))

编译直到我按照Timbre文档中的下一步添加

(timbre/refer-timbre) ; Provides useful Timbre aliases in this ns

我现在得到以下编译错误

IllegalStateException report already refers to #'clojure.test/report in namespace foo.core-test
clojure.lang.Namespace.warnOrFailOnReplace (Namespace.java:88)
好的,groovy,我会尝试

(ns foo.core-test ; ------vvvvvvvvvvvvvvvv-----
  (:require [clojure.test :exclude [report]]
            [taoensso.timbre :as timbre]
            [foo.core :refer :all]))
毫米,不。我注意到clojure也有report。 <怎么样

(ns foo.core-test
  (:refer-clojure :exclude [report])
  (:require [clojure.test :refer :all]
            [taoensso.timbre :as timbre]
            [foo.core :refer :all]))

mmmmm,nope。

我唠叨了一会儿,直到我厌倦了组合试错。我还没有办法让它们共存。任何线索,请&amp;感谢?

1 个答案:

答案 0 :(得分:1)

report中没有clojure.core。在您的第二个ns表单中,:refer :all似乎缺少clojure.test。请尝试以下表格:

(ns foo.core-test
  (:require [clojure.test :refer :all :exclude [report]]
            [taoensso.timbre :as timbre]
            [foo.core :refer :all]))