我怎样才能删除leiningen:在个人资料中注射?

时间:2017-06-05 09:02:37

标签: clojure leiningen

我使用〜/ .lein / profiles.clj中定义的humane-test-output,如下所示:

{:user {:injections [(require 'pjstadig.humane-test-output)
                     (pjstadig.humane-test-output/activate!)]}}

然而,一些旧的Clojure项目在人道测试输出有效时效果不佳(有时我只想要标准的clojure.test输出)。

我以为我偶尔会通过添加一个新的配置文件来禁用humane-test-output:

{:user {:injections [(require 'pjstadig.humane-test-output)
                     (pjstadig.humane-test-output/activate!)]}
 :nohumane {:injections ^:replace []}}

所以,每当我需要时,我都可以轻松地调用它:

lein with-profile nohumane test

然而,当我这样做时,我看到:

Caused by: java.lang.ClassNotFoundException: leiningen.core.injected
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at clojure.lang.DynamicClassLoader.findClass(DynamicClassLoader.java:69)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at clojure.lang.DynamicClassLoader.loadClass(DynamicClassLoader.java:77)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)

我认为这是因为我删除了this essential injection,这是lein核心的一部分,需要在lein的test个人资料中保持活跃。

所以我的问题是,如何在配置文件中删除人道测试输出注入但是保持核心注入不变?请注意,leiningen.core.project/hooke-injection也是私有的,即使使用#'技巧,我到目前为止还无法引用它。

0 个答案:

没有答案