Тесты leiningen midje не работают в Intellij
Рассмотрим следующий (минимальный) проект leiningen
./project.clj:
(defproject repro "0.1.0-SNAPSHOT"
:dependencies [[org.clojure/clojure "1.5.1"]
[midje "1.5.1"]])
./repro/src/repro/core.clj:
(ns repro.core)
./repro/test/repro/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
Похоже, что La Clojure + Intellij не может найти некоторые предварительные условия для midje, что странно, потому что La Clojure запускает classpath из leiningen .m2
каталог.
Я искал плагин midje для Intellij, но пока не повезло.
Мне это нужно, потому что, хотя я с удовольствием использую только emacs + leiningen, моя команда хочет Intellij.