我使用〜/ .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
也是私有的,即使使用#'
技巧,我到目前为止还无法引用它。