Intellij idea leiningen midje测试在Intellij中不起作用
考虑以下(最小)leiningen项目 ./project.clj:Intellij idea leiningen midje测试在Intellij中不起作用,intellij-idea,clojure,leiningen,midje,la-clojure,Intellij Idea,Clojure,Leiningen,Midje,La Clojure,考虑以下(最小)leiningen项目 ./project.clj: (defproject repro "0.1.0-SNAPSHOT" :dependencies [[org.clojure/clojure "1.5.1"] [midje "1.5.1"]]) ./repo/src/repo/core.clj: (ns repro.core) /repo/test/repo/core_test.clj: (ns repro
(defproject repro "0.1.0-SNAPSHOT"
:dependencies [[org.clojure/clojure "1.5.1"]
[midje "1.5.1"]])
./repo/src/repo/core.clj:
(ns repro.core)
/repo/test/repo/core_test.clj:
(ns repro.core-test
(:require [repro.core :refer :all]
[midje.sweet :refer :all]))
(facts "about numbers"
(fact "trivial"
1 => 1) )
如果我安装了leiningen midje插件,它将在命令提示符下运行,如下所示:
lein clean
lein midje
~~> All checks (1) succeeded.
但是,如果我将leiningen项目导入Intellij 12.1.5 Community Edition,我会得到一个胖堆栈跟踪:
Exception in thread "main" java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:270)
...
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.hash(ConcurrentHashMap.java:333)
at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:988)
at clojure.lang.Namespace.find(Namespace.java:188)
at clojure.core$find_ns.invoke(core.clj:3728)
at clojure.core$the_ns.invoke(core.clj:3760)
at clojure.core$ns_name.invoke(core.clj:3767)
at midje.Bootstrap$bootstrap.invoke(Bootstrap.clj:8)
at midje.sweet__init.load(Unknown Source)
at midje.sweet__init.<clinit>(Unknown Source)
... 37 more
线程“main”java.lang.ExceptionInInitializeError中的异常
位于java.lang.Class.forName0(本机方法)
位于java.lang.Class.forName(Class.java:270)
...
位于java.lang.reflect.Method.invoke(Method.java:606)
位于com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
原因:java.lang.NullPointerException
位于java.util.concurrent.ConcurrentHashMap.hash(ConcurrentHashMap.java:333)
位于java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:988)
位于clojure.lang.Namespace.find(Namespace.java:188)
在clojure.core$find\n.invoke(core.clj:3728)
在clojure.core$the_ns.invoke(core.clj:3760)
在clojure.core$ns_name.invoke(core.clj:3767)
在midje.Bootstrap$Bootstrap.invoke(Bootstrap.clj:8)
在midje.sweet\uuuu初始加载时(未知源)
在midje.sweet_uuuinit(未知来源)
... 37多
看起来La Clojure+Intellij找不到midje的一些先决条件,这很奇怪,因为La Clojure正在leiningen.m2
目录外运行类路径
我已经为Intellij寻找了一个midje插件,但到目前为止运气不好
我需要这个,因为尽管我很高兴只使用emacs+leiningen,但我的团队需要Intellij 导入项目可以与IDEA 16中的(La Clojure的新版本)配合使用,但对
midje
的支持仍然相当差-预期的右键单击“运行测试”不存在。手动添加leiningen midje
run配置仍然有效。