【问题标题】:Clojure: Timbre and clojure.test namespacesClojure:音色和 clojure.test 命名空间
【发布时间】:2014-04-28 05:21:28
【问题描述】:

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

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

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

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

好的,我会试试的

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

嗯嗯,不。

我折腾了一段时间,直到厌倦了组合试验和错误。我还没有找到让它们共存的方法。有什么线索吗,谢谢?

【问题讨论】:

    标签: clojure namespaces timbre


    【解决方案1】:

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

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

    【讨论】:

    • 那肯定行不通:(我尝试过的众多排列之一。
    • 编辑:重新启动 nrepl 使此解决方案有效。 nrepl 中的一些虚假保存的状态通过使错误状态保持虚假状态来欺骗我。
    猜你喜欢
    • 1970-01-01
    • 2011-08-31
    • 1970-01-01
    • 1970-01-01
    • 2011-04-15
    • 2015-09-16
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多