Coder Social home page Coder Social logo

lein-midje's Introduction

Available via clojars
Production version: 3.2.1 (requires Midje 1.5 or later)

Purpose

This plugin runs both Midje and clojure.test tests.

Installation

lein-midje is a plugin, so add this to your ~/.lein/profiles.clj:

{:user {:plugins [[lein-midje "3.2.1"]]}}

Or you can include it in your project.clj:

{:profiles {:dev {:plugins [[lein-midje "3.2.1"]]}}}

lein-midje depends on midje itself. If you don't already have midje in your project.clj, you'll need to add it. For example, you could use this in place of the profiles above:

{:profiles {:dev {:dependencies [[midje "1.6.0" :exclusions [org.clojure/clojure]]]
                  :plugins [[lein-midje "3.2.1"]]}}}

Use

To run all the tests, and check all the facts, in both the test and src directories, type this:

  $ lein midje 

You can also run individual namespaces by adding them to the command line:

  $ lein midje life.core life.timecop

You can use a wildcard to specify a subset of namespaces:

   $ lein midje 'midje.ideas.*'

This will run all the tests in that namespace and ones recursively included within it.

To run lein-midje as a watcher process that reloads any changed test files, use this:

   $ lein midje :autotest

See the Midje documentation for more.

Environment Variables and Profiles

On Unix systems, colorizing of results is turned on by default. It can be turned off with

  $ export MIDJE_COLORIZE=false

Colorizing is off by default on Windows systems. It can be turned on with:

  $ export MIDJE_COLORIZE=true

Coloring is most readable with light text against a dark background. If you use dark text against a light background, you might prefer this:

  $ export MIDJE_COLORIZE=reverse

It colors the background instead of the letters.

lein-midje obeys the :midje profile.

Contributors

  • Alex Baranosky
  • Andreas Liljeqvist
  • Andreas Wurzer
  • Bjarte Johansen
  • Bobby Norton
  • Brian Marick
  • Bruce Durling
  • Derek Passen
  • Dmitri Naumov
  • elarkin
  • Eric Evans
  • Jacob Strength
  • Mark Simpson
  • Matt Mitchell
  • Sam Ritchie
  • Sebastian Hennebrueder
  • Teemu Antti-Poika
  • Timo Mihaljov
  • Tomoharu Fujita
  • Wes Morgan
  • Yannick Scherer

lein-midje's People

Contributors

alexbaranosky avatar anttipoi avatar bonega avatar cap10morgan avatar dpassen avatar elarkin avatar ericevans0 avatar jacobmetageek avatar jaharu avatar laliluna avatar ljos avatar marick avatar noidi avatar otfrom avatar sritchie avatar verdammelt avatar xsc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lein-midje's Issues

Status queries against lein midje :autotest

I imagine a server mode for lein midje :autotest where it would report the last status of the tests, e.g. using a HTTP API returning JSON objects:

GET("/api/v1/tests")
=> [{:namespace 'name.space}]
GET("/api/v1/tests/:namespace/status")
=> {:namespace 'name.space
    :filename "/full/path"
    :status :failure/:success/...
    :message "Detailed failure information from the test engine"
    :coverage 0.1234}

Create a new midje project

Suggestion from user: "A leiningen plugin that automatically create a new Clojure project with the right Midje dependencies?"

filtering multiple values

Running:

lein midje :filter -integration -agent

Results with integration test running ignoring the filtering

autotest does not rerun "used" tests

We have tests in an "external" project that we include as a depency, like so:

(ns external-test-ns
  (:use ns-under-test)
  (:use midje.sweet))

(fact "addition" (+ 2 2) => 4)
(ns internal-test-ns
  (:use external-test-ns))

Running lein midje :autotest runs all the tests on the first go, but not after modifications to to definitions in ns-under-test.

lein-midje does not function on JDK9

lein-midje on JDK9 fails with the following exception:

Exception in thread "main" java.lang.ClassNotFoundException: sun.misc.Launcher, compiling:(dynapath/defaults.clj:29:3)
	at clojure.lang.Compiler.analyzeSeq(Compiler.java:6875)
	at clojure.lang.Compiler.analyze(Compiler.java:6669)
	at clojure.lang.Compiler.analyze(Compiler.java:6625)
	at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:6001)
	at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6319)
	at clojure.lang.Compiler.analyzeSeq(Compiler.java:6868)
	at clojure.lang.Compiler.analyze(Compiler.java:6669)
	at clojure.lang.Compiler.analyze(Compiler.java:6625)
	at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:6001)
	at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5380)
	at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3972)
	at clojure.lang.Compiler.analyzeSeq(Compiler.java:6866)
	at clojure.lang.Compiler.analyze(Compiler.java:6669)
	at clojure.lang.Compiler.eval(Compiler.java:6924)
	at clojure.lang.Compiler.load(Compiler.java:7379)
	at clojure.lang.RT.loadResourceScript(RT.java:372)
	at clojure.lang.RT.loadResourceScript(RT.java:363)
	at clojure.lang.RT.load(RT.java:453)
	at clojure.lang.RT.load(RT.java:419)
	at clojure.core$load$fn__5677.invoke(core.clj:5893)
	at clojure.core$load.invokeStatic(core.clj:5892)
	at clojure.core$load.doInvoke(core.clj:5876)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invokeStatic(core.clj:5697)
	at clojure.core$load_one.invoke(core.clj:5692)
	at clojure.core$load_lib$fn__5626.invoke(core.clj:5737)
	at clojure.core$load_lib.invokeStatic(core.clj:5736)
	at clojure.core$load_lib.doInvoke(core.clj:5717)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:648)
	at clojure.core$load_libs.invokeStatic(core.clj:5774)
	at clojure.core$load_libs.doInvoke(core.clj:5758)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invokeStatic(core.clj:648)
	at clojure.core$require.invokeStatic(core.clj:5796)
	at clojure.core$require.doInvoke(core.clj:5796)
	at clojure.lang.RestFn.invoke(RestFn.java:421)
	at dynapath.util$eval7779$loading__5569__auto____7780.invoke(util.clj:1)
	at dynapath.util$eval7779.invokeStatic(util.clj:1)
	at dynapath.util$eval7779.invoke(util.clj:1)
	at clojure.lang.Compiler.eval(Compiler.java:6927)
	at clojure.lang.Compiler.eval(Compiler.java:6916)
	at clojure.lang.Compiler.load(Compiler.java:7379)
	at clojure.lang.RT.loadResourceScript(RT.java:372)
	at clojure.lang.RT.loadResourceScript(RT.java:363)
	at clojure.lang.RT.load(RT.java:453)
	at clojure.lang.RT.load(RT.java:419)
	at clojure.core$load$fn__5677.invoke(core.clj:5893)
	at clojure.core$load.invokeStatic(core.clj:5892)
	at clojure.core$load.doInvoke(core.clj:5876)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invokeStatic(core.clj:5697)
	at clojure.core$load_one.invoke(core.clj:5692)
	at clojure.core$load_lib$fn__5626.invoke(core.clj:5737)
	at clojure.core$load_lib.invokeStatic(core.clj:5736)
	at clojure.core$load_lib.doInvoke(core.clj:5717)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:648)
	at clojure.core$load_libs.invokeStatic(core.clj:5774)
	at clojure.core$load_libs.doInvoke(core.clj:5758)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invokeStatic(core.clj:648)
	at clojure.core$require.invokeStatic(core.clj:5796)
	at clojure.core$require.doInvoke(core.clj:5796)
	at clojure.lang.RestFn.invoke(RestFn.java:436)
	at midje.util.bultitude$eval7771$loading__5569__auto____7772.invoke(bultitude.clj:1)
	at midje.util.bultitude$eval7771.invokeStatic(bultitude.clj:1)
	at midje.util.bultitude$eval7771.invoke(bultitude.clj:1)
	at clojure.lang.Compiler.eval(Compiler.java:6927)
	at clojure.lang.Compiler.eval(Compiler.java:6916)
	at clojure.lang.Compiler.load(Compiler.java:7379)
	at clojure.lang.RT.loadResourceScript(RT.java:372)
	at clojure.lang.RT.loadResourceScript(RT.java:363)
	at clojure.lang.RT.load(RT.java:453)
	at clojure.lang.RT.load(RT.java:419)
	at clojure.core$load$fn__5677.invoke(core.clj:5893)
	at clojure.core$load.invokeStatic(core.clj:5892)
	at clojure.core$load.doInvoke(core.clj:5876)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invokeStatic(core.clj:5697)
	at clojure.core$load_one.invoke(core.clj:5692)
	at clojure.core$load_lib$fn__5626.invoke(core.clj:5737)
	at clojure.core$load_lib.invokeStatic(core.clj:5736)
	at clojure.core$load_lib.doInvoke(core.clj:5717)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:648)
	at clojure.core$load_libs.invokeStatic(core.clj:5774)
	at clojure.core$load_libs.doInvoke(core.clj:5758)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invokeStatic(core.clj:648)
	at clojure.core$require.invokeStatic(core.clj:5796)
	at clojure.core$require.doInvoke(core.clj:5796)
	at clojure.lang.RestFn.invoke(RestFn.java:619)
	at midje.data.project_state$eval7765$loading__5569__auto____7766.invoke(project_state.clj:1)
	at midje.data.project_state$eval7765.invokeStatic(project_state.clj:1)
	at midje.data.project_state$eval7765.invoke(project_state.clj:1)
	at clojure.lang.Compiler.eval(Compiler.java:6927)
	at clojure.lang.Compiler.eval(Compiler.java:6916)
	at clojure.lang.Compiler.load(Compiler.java:7379)
	at clojure.lang.RT.loadResourceScript(RT.java:372)
	at clojure.lang.RT.loadResourceScript(RT.java:363)
	at clojure.lang.RT.load(RT.java:453)
	at clojure.lang.RT.load(RT.java:419)
	at clojure.core$load$fn__5677.invoke(core.clj:5893)
	at clojure.core$load.invokeStatic(core.clj:5892)
	at clojure.core$load.doInvoke(core.clj:5876)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invokeStatic(core.clj:5697)
	at clojure.core$load_one.invoke(core.clj:5692)
	at clojure.core$load_lib$fn__5626.invoke(core.clj:5737)
	at clojure.core$load_lib.invokeStatic(core.clj:5736)
	at clojure.core$load_lib.doInvoke(core.clj:5717)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:648)
	at clojure.core$load_libs.invokeStatic(core.clj:5774)
	at clojure.core$load_libs.doInvoke(core.clj:5758)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invokeStatic(core.clj:648)
	at clojure.core$require.invokeStatic(core.clj:5796)
	at clojure.core$require.doInvoke(core.clj:5796)
	at clojure.lang.RestFn.invoke(RestFn.java:2422)
	at midje.repl$eval3351$loading__5569__auto____3352.invoke(repl.clj:1)
	at midje.repl$eval3351.invokeStatic(repl.clj:1)
	at midje.repl$eval3351.invoke(repl.clj:1)
	at clojure.lang.Compiler.eval(Compiler.java:6927)
	at clojure.lang.Compiler.eval(Compiler.java:6916)
	at clojure.lang.Compiler.load(Compiler.java:7379)
	at clojure.lang.RT.loadResourceScript(RT.java:372)
	at clojure.lang.RT.loadResourceScript(RT.java:363)
	at clojure.lang.RT.load(RT.java:453)
	at clojure.lang.RT.load(RT.java:419)
	at clojure.core$load$fn__5677.invoke(core.clj:5893)
	at clojure.core$load.invokeStatic(core.clj:5892)
	at clojure.core$load.doInvoke(core.clj:5876)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invokeStatic(core.clj:5697)
	at clojure.core$load_one.invoke(core.clj:5692)
	at clojure.core$load_lib$fn__5626.invoke(core.clj:5737)
	at clojure.core$load_lib.invokeStatic(core.clj:5736)
	at clojure.core$load_lib.doInvoke(core.clj:5717)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:648)
	at clojure.core$load_libs.invokeStatic(core.clj:5774)
	at clojure.core$load_libs.doInvoke(core.clj:5758)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invokeStatic(core.clj:648)
	at clojure.core$require.invokeStatic(core.clj:5796)
	at clojure.core$require.doInvoke(core.clj:5796)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at user$eval3345.invokeStatic(form-init13164315982210445604.clj:1)
	at user$eval3345.invoke(form-init13164315982210445604.clj:1)
	at clojure.lang.Compiler.eval(Compiler.java:6927)
	at clojure.lang.Compiler.eval(Compiler.java:6917)
	at clojure.lang.Compiler.eval(Compiler.java:6916)
	at clojure.lang.Compiler.load(Compiler.java:7379)
	at clojure.lang.Compiler.loadFile(Compiler.java:7317)
	at clojure.main$load_script.invokeStatic(main.clj:275)
	at clojure.main$init_opt.invokeStatic(main.clj:277)
	at clojure.main$init_opt.invoke(main.clj:277)
	at clojure.main$initialize.invokeStatic(main.clj:308)
	at clojure.main$null_opt.invokeStatic(main.clj:342)
	at clojure.main$null_opt.invoke(main.clj:339)
	at clojure.main$main.invokeStatic(main.clj:421)
	at clojure.main$main.doInvoke(main.clj:384)
	at clojure.lang.RestFn.invoke(RestFn.java:421)
	at clojure.lang.Var.invoke(Var.java:383)
	at clojure.lang.AFn.applyToHelper(AFn.java:156)
	at clojure.lang.Var.applyTo(Var.java:700)
	at clojure.main.main(main.java:37)
Caused by: java.lang.ClassNotFoundException: sun.misc.Launcher
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)
	at clojure.lang.DynamicClassLoader.findClass(DynamicClassLoader.java:69)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:563)
	at clojure.lang.DynamicClassLoader.loadClass(DynamicClassLoader.java:77)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:375)
	at clojure.lang.RT.classForName(RT.java:2168)
	at clojure.lang.RT.classForName(RT.java:2177)
	at clojure.lang.Compiler.maybeResolveIn(Compiler.java:7187)
	at clojure.core$ns_resolve.invokeStatic(core.clj:4240)
	at clojure.core$ns_resolve.invokeStatic(core.clj:4229)
	at clojure.core$resolve.invokeStatic(core.clj:4242)
	at clojure.core$resolve.invoke(core.clj:4242)
	at dynapath.defaults$when_resolves.invokeStatic(defaults.clj:9)
	at dynapath.defaults$when_resolves.doInvoke(defaults.clj:7)
	at clojure.lang.RestFn.invoke(RestFn.java:467)
	at clojure.lang.Var.invoke(Var.java:394)
	at clojure.lang.AFn.applyToHelper(AFn.java:165)
	at clojure.lang.Var.applyTo(Var.java:700)
	at clojure.lang.Compiler.macroexpand1(Compiler.java:6776)
	at clojure.lang.Compiler.analyzeSeq(Compiler.java:6854)
	... 168 more
Subprocess failed

Here's an example project that demonstrates the issue (build output).

lein-midge 3.2-RC4 not working with midge-1.8-alpha

I set the plugin for lein-midge 3.2-RC4 in my ~/.lein/profiles.clj, when running lein new or lein deps the following error messages are shown

Could not find artifact midje:midje:jar:1.8-alpha in central (https://repo1.maven.org/maven2/)
Could not find artifact midje:midje:jar:1.8-alpha in clojars (https://clojars.org/repo/)

Using version 3.2-RC3 works without issue.

I tried switching back to 3.2-RC4 after creating a project and I still get the same error. I have also tried lein clean and it makes no difference.

The project.clj file for the project is as follows

(defproject fun-with-midje "0.0.1-SNAPSHOT"
  :description "Trying out Midje library for TDD fun"
  :dependencies [[org.clojure/clojure "1.7.0"]]
  :profiles {:dev {:dependencies [[midje "1.8-alpha"]]}})

Version 3.2.1 is throwing an exception when I do lein midje

Version 3.2.1 is throwing an exception when I do lein midje. Here's the output for lein version:

Leiningen 2.8.1 on Java 1.8.0_131 OpenJDK 64-Bit Server VM

And here's the output for lein midje:

Exception in thread "main" java.io.FileNotFoundException: Could not locate midje/util/ecosystem__init.class or midje/util/ecosystem.clj on classpath., compiling:(/tmp/form-init4110852105063209423.clj:1:73)
	at clojure.lang.Compiler.load(Compiler.java:7391)
	at clojure.lang.Compiler.loadFile(Compiler.java:7317)
	at clojure.main$load_script.invokeStatic(main.clj:275)
	at clojure.main$init_opt.invokeStatic(main.clj:277)
	at clojure.main$init_opt.invoke(main.clj:277)
	at clojure.main$initialize.invokeStatic(main.clj:308)
	at clojure.main$null_opt.invokeStatic(main.clj:342)
	at clojure.main$null_opt.invoke(main.clj:339)
	at clojure.main$main.invokeStatic(main.clj:421)
	at clojure.main$main.doInvoke(main.clj:384)
	at clojure.lang.RestFn.invoke(RestFn.java:421)
	at clojure.lang.Var.invoke(Var.java:383)
	at clojure.lang.AFn.applyToHelper(AFn.java:156)
	at clojure.lang.Var.applyTo(Var.java:700)
	at clojure.main.main(main.java:37)
Caused by: java.io.FileNotFoundException: Could not locate midje/util/ecosystem__init.class or midje/util/ecosystem.clj on classpath.
	at clojure.lang.RT.load(RT.java:456)
	at clojure.lang.RT.load(RT.java:419)
	at clojure.core$load$fn__5677.invoke(core.clj:5893)
	at clojure.core$load.invokeStatic(core.clj:5892)
	at clojure.core$load.doInvoke(core.clj:5876)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invokeStatic(core.clj:5697)
	at clojure.core$load_one.invoke(core.clj:5692)
	at clojure.core$load_lib$fn__5626.invoke(core.clj:5737)
	at clojure.core$load_lib.invokeStatic(core.clj:5736)
	at clojure.core$load_lib.doInvoke(core.clj:5717)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:648)
	at clojure.core$load_libs.invokeStatic(core.clj:5774)
	at clojure.core$load_libs.doInvoke(core.clj:5758)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invokeStatic(core.clj:648)
	at clojure.core$require.invokeStatic(core.clj:5796)
	at clojure.core$require.doInvoke(core.clj:5796)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at user$eval5.invokeStatic(form-init4110852105063209423.clj:1)
	at user$eval5.invoke(form-init4110852105063209423.clj:1)
	at clojure.lang.Compiler.eval(Compiler.java:6927)
	at clojure.lang.Compiler.eval(Compiler.java:6916)
	at clojure.lang.Compiler.eval(Compiler.java:6916)
	at clojure.lang.Compiler.load(Compiler.java:7379)
	... 14 more
Subprocess failed

I can provide more information if needed.

lein midje fails with eval-in-leiningen => true

With Clojure version 1.2.1 and leiningen version 1.5.2 or 1.6:

# lein plugin install lein-midje 1.0.2
# lein new my_proj
# cd my_proj
<edit project.clj to add midje 1.1.1 as dev dependency>
* At this point, lein midje behaves nicely
<edit project.clj to set eval-in-leiningen to true>
* At this point, lein midje chokes>

According to technomancy on IRC today, the problem is a bootclasspath issue and it can be fixed with:

"the do form on the last line should be replaced with '(require '[clojure walk template stacktrace test string])"

"some background: http://dev.clojure.org/jira/browse/CLJ-673"

-Chris

Allow to specify more than one :test-path

Currently lein-midje respects a given :test-path. For projects that have Java sources too, which also will be tested with Midje, it would be useful to be able to specify multiple test paths. This could happen via a new key/value pair in the project.clj file. I suggest not to overwrite the behaviour of the existing :test-path because that one gets exported into the pom.xml file. So something like :midje {:paths ["test/clj", "test/java"]} could solve this. If the value will be a map then that could be extended in the future for more Midje options.

lein midje fails with 3.1.2

When I run lein midje I have this error java.lang.ClassNotFoundException: leiningen.core.main (see error details below)
My configuration
Leiningen 2.3.2 / lein-midje 3.1.2 / midje 1.5.1
The same configuration works fine with lein-midje 3.1.1

Exception in thread "main" java.lang.ClassNotFoundException: leiningen.core.main, compiling:(/tmp/form-init2091574418830435753.clj:1:2423)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6567)
at clojure.lang.Compiler.analyze(Compiler.java:6361)
at clojure.lang.Compiler.analyze(Compiler.java:6322)
at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5708)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6560)
at clojure.lang.Compiler.analyze(Compiler.java:6361)
at clojure.lang.Compiler.analyze(Compiler.java:6322)
at clojure.lang.Compiler$IfExpr$Parser.parse(Compiler.java:2677)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6560)
at clojure.lang.Compiler.analyze(Compiler.java:6361)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6548)
at clojure.lang.Compiler.analyze(Compiler.java:6361)
at clojure.lang.Compiler.analyze(Compiler.java:6322)
at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5708)
at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6009)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6560)
at clojure.lang.Compiler.analyze(Compiler.java:6361)
at clojure.lang.Compiler.analyze(Compiler.java:6322)
at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5708)
at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5139)
at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3751)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6558)
at clojure.lang.Compiler.analyze(Compiler.java:6361)
at clojure.lang.Compiler.eval(Compiler.java:6616)
at clojure.lang.Compiler.eval(Compiler.java:6609)
at clojure.lang.Compiler.load(Compiler.java:7064)
at clojure.lang.Compiler.loadFile(Compiler.java:7020)
at clojure.main$load_script.invoke(main.clj:294)
at clojure.main$init_opt.invoke(main.clj:299)
at clojure.main$initialize.invoke(main.clj:327)
at clojure.main$null_opt.invoke(main.clj:362)
at clojure.main$main.doInvoke(main.clj:440)
at clojure.lang.RestFn.invoke(RestFn.java:421)
at clojure.lang.Var.invoke(Var.java:419)
at clojure.lang.AFn.applyToHelper(AFn.java:163)
at clojure.lang.Var.applyTo(Var.java:532)
at clojure.main.main(main.java:37)
Caused by: java.lang.ClassNotFoundException: leiningen.core.main
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at clojure.lang.DynamicClassLoader.findClass(DynamicClassLoader.java:61)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at clojure.lang.RT.classForName(RT.java:2070)
at clojure.lang.Compiler$HostExpr.maybeClass(Compiler.java:969)
at clojure.lang.Compiler$HostExpr.access$400(Compiler.java:747)
at clojure.lang.Compiler.macroexpand1(Compiler.java:6499)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6546)
... 36 more
Subprocess failed

lazy test prints out identical error messages

When there is an error in my tests lazy test prints out identical error messages:

Reloading yobistore.core, yobistore.server-test, yobistore.core-test

FAIL at (core_test.clj:12)
Actual result did not agree with the checking function.
        Actual result: java.lang.ClassCastException: java.lang.Long cannot be cast to datomic.Connection
              datomic.api$transact.invoke(api.clj:54)
              yobistore.core$add_item.invoke(core.clj:14)
              yobistore.core_test$eval6576$fn__6577$fn__6578$fn__6579.invoke(core_test.clj:11)
              yobistore.core_test$eval6576$fn__6577$fn__6578.invoke(core_test.clj:11)
              yobistore.core_test$eval6576$fn__6577.invoke(core_test.clj:11)
              yobistore.core_test$eval6576.invoke(core_test.clj:11)
              lazytest.reload$reload.doInvoke(reload.clj:61)
              lazytest.watch$reload_and_run.invoke(watch.clj:22)
              lazytest.watch$reloading_runner$fn__288.invoke(watch.clj:35)
    Checking function: (just {:t number?})
    The checker said this about the reason:
        You can't compare #<CapturedThrowable midje.error_handling.exceptions.CapturedThrowable@1e9a7dae> (class midje.error_handling.exceptions.CapturedThrowable) to {:t #<core$number_QMARK_ clojure.core$number_QMARK_@1b65faeb>} (class clojure.lang.PersistentArrayMap).

FAIL at (core_test.clj:12)
Actual result did not agree with the checking function.
        Actual result: java.lang.ClassCastException: java.lang.Long cannot be cast to datomic.Connection
              datomic.api$transact.invoke(api.clj:54)
              yobistore.core$add_item.invoke(core.clj:14)
              yobistore.core_test$eval6629$fn__6630$fn__6631$fn__6632.invoke(core_test.clj:11)
              yobistore.core_test$eval6629$fn__6630$fn__6631.invoke(core_test.clj:11)
              yobistore.core_test$eval6629$fn__6630.invoke(core_test.clj:11)
              yobistore.core_test$eval6629.invoke(core_test.clj:11)
              lazytest.watch$reload_and_run.invoke(watch.clj:23)
              lazytest.watch$reloading_runner$fn__288.invoke(watch.clj:35)
    Checking function: (just {:t number?})
    The checker said this about the reason:
        You can't compare #<CapturedThrowable midje.error_handling.exceptions.CapturedThrowable@5106e95a> (class midje.error_handling.exceptions.CapturedThrowable) to {:t #<core$number_QMARK_ clojure.core$number_QMARK_@1b65faeb>} (class clojure.lang.PersistentArrayMap).
FAILURE: 1 fact was not confirmed. 

Any idea what the issue is?

lein-midje does not function on JDK11

lein-midje on JDK11 fails with the following exception:

Exception in thread "main" java.lang.IllegalArgumentException: Must hint overloaded method: toArray, compiling:(clojure/core/rrb_vector/rrbt.clj:282:1)
	at clojure.lang.Compiler.analyzeSeq(Compiler.java:7010)
	at clojure.lang.Compiler.analyze(Compiler.java:6773)
	at clojure.lang.Compiler.analyze(Compiler.java:6729)
	at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:6100)
	at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:6420)
	at clojure.lang.Compiler.analyzeSeq(Compiler.java:7003)
	at clojure.lang.Compiler.analyze(Compiler.java:6773)
	at clojure.lang.Compiler.analyze(Compiler.java:6729)
	at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:6100)
	at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5460)
	at clojure.lang.Compiler$FnExpr.parse(Compiler.java:4022)
	at clojure.lang.Compiler.analyzeSeq(Compiler.java:7001)
	at clojure.lang.Compiler.analyze(Compiler.java:6773)
	at clojure.lang.Compiler.eval(Compiler.java:7059)
	at clojure.lang.Compiler.load(Compiler.java:7514)
	at clojure.lang.RT.loadResourceScript(RT.java:379)
	at clojure.lang.RT.loadResourceScript(RT.java:370)
	at clojure.lang.RT.load(RT.java:460)
	at clojure.lang.RT.load(RT.java:426)
	at clojure.core$load$fn__6548.invoke(core.clj:6046)
	at clojure.core$load.invokeStatic(core.clj:6045)
	at clojure.core$load.doInvoke(core.clj:6029)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invokeStatic(core.clj:5848)
	at clojure.core$load_one.invoke(core.clj:5843)
	at clojure.core$load_lib$fn__6493.invoke(core.clj:5888)
	at clojure.core$load_lib.invokeStatic(core.clj:5887)
	at clojure.core$load_lib.doInvoke(core.clj:5868)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:659)
	at clojure.core$load_libs.invokeStatic(core.clj:5925)
	at clojure.core$load_libs.doInvoke(core.clj:5909)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invokeStatic(core.clj:659)
	at clojure.core$require.invokeStatic(core.clj:5947)
	at clojure.core$require.doInvoke(core.clj:5947)
	at clojure.lang.RestFn.invoke(RestFn.java:457)
	at clojure.core.rrb_vector$eval3928$loading__6434__auto____3929.invoke(rrb_vector.clj:1)
	at clojure.core.rrb_vector$eval3928.invokeStatic(rrb_vector.clj:1)
	at clojure.core.rrb_vector$eval3928.invoke(rrb_vector.clj:1)
	at clojure.lang.Compiler.eval(Compiler.java:7062)
	at clojure.lang.Compiler.eval(Compiler.java:7051)
	at clojure.lang.Compiler.load(Compiler.java:7514)
	at clojure.lang.RT.loadResourceScript(RT.java:379)
	at clojure.lang.RT.loadResourceScript(RT.java:370)
	at clojure.lang.RT.load(RT.java:460)
	at clojure.lang.RT.load(RT.java:426)
	at clojure.core$load$fn__6548.invoke(core.clj:6046)
	at clojure.core$load.invokeStatic(core.clj:6045)
	at clojure.core$load.doInvoke(core.clj:6029)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invokeStatic(core.clj:5848)
	at clojure.core$load_one.invoke(core.clj:5843)
	at clojure.core$load_lib$fn__6493.invoke(core.clj:5888)
	at clojure.core$load_lib.invokeStatic(core.clj:5887)
	at clojure.core$load_lib.doInvoke(core.clj:5868)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:659)
	at clojure.core$load_libs.invokeStatic(core.clj:5925)
	at clojure.core$load_libs.doInvoke(core.clj:5909)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invokeStatic(core.clj:659)
	at clojure.core$require.invokeStatic(core.clj:5947)
	at clojure.core$require.doInvoke(core.clj:5947)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at fipp.deque$eval3920$loading__6434__auto____3921.invoke(deque.cljc:1)
	at fipp.deque$eval3920.invokeStatic(deque.cljc:1)
	at fipp.deque$eval3920.invoke(deque.cljc:1)
	at clojure.lang.Compiler.eval(Compiler.java:7062)
	at clojure.lang.Compiler.eval(Compiler.java:7051)
	at clojure.lang.Compiler.load(Compiler.java:7514)
	at clojure.lang.RT.loadResourceScript(RT.java:379)
	at clojure.lang.RT.loadResourceScript(RT.java:370)
	at clojure.lang.RT.load(RT.java:460)
	at clojure.lang.RT.load(RT.java:426)
	at clojure.core$load$fn__6548.invoke(core.clj:6046)
	at clojure.core$load.invokeStatic(core.clj:6045)
	at clojure.core$load.doInvoke(core.clj:6029)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invokeStatic(core.clj:5848)
	at clojure.core$load_one.invoke(core.clj:5843)
	at clojure.core$load_lib$fn__6493.invoke(core.clj:5888)
	at clojure.core$load_lib.invokeStatic(core.clj:5887)
	at clojure.core$load_lib.doInvoke(core.clj:5868)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:659)
	at clojure.core$load_libs.invokeStatic(core.clj:5925)
	at clojure.core$load_libs.doInvoke(core.clj:5909)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invokeStatic(core.clj:659)
	at clojure.core$require.invokeStatic(core.clj:5947)
	at clojure.core$require.doInvoke(core.clj:5947)
	at clojure.lang.RestFn.invoke(RestFn.java:421)
	at fipp.engine$eval3912$loading__6434__auto____3913.invoke(engine.cljc:1)
	at fipp.engine$eval3912.invokeStatic(engine.cljc:1)
	at fipp.engine$eval3912.invoke(engine.cljc:1)
	at clojure.lang.Compiler.eval(Compiler.java:7062)
	at clojure.lang.Compiler.eval(Compiler.java:7051)
	at clojure.lang.Compiler.load(Compiler.java:7514)
	at clojure.lang.RT.loadResourceScript(RT.java:379)
	at clojure.lang.RT.loadResourceScript(RT.java:370)
	at clojure.lang.RT.load(RT.java:460)
	at clojure.lang.RT.load(RT.java:426)
	at clojure.core$load$fn__6548.invoke(core.clj:6046)
	at clojure.core$load.invokeStatic(core.clj:6045)
	at clojure.core$load.doInvoke(core.clj:6029)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invokeStatic(core.clj:5848)
	at clojure.core$load_one.invoke(core.clj:5843)
	at clojure.core$load_lib$fn__6493.invoke(core.clj:5888)
	at clojure.core$load_lib.invokeStatic(core.clj:5887)
	at clojure.core$load_lib.doInvoke(core.clj:5868)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:659)
	at clojure.core$load_libs.invokeStatic(core.clj:5925)
	at clojure.core$load_libs.doInvoke(core.clj:5909)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invokeStatic(core.clj:659)
	at clojure.core$require.invokeStatic(core.clj:5947)
	at clojure.core$require.doInvoke(core.clj:5947)
	at clojure.lang.RestFn.invoke(RestFn.java:551)
	at puget.printer$eval3877$loading__6434__auto____3878.invoke(printer.clj:1)
	at puget.printer$eval3877.invokeStatic(printer.clj:1)
	at puget.printer$eval3877.invoke(printer.clj:1)
	at clojure.lang.Compiler.eval(Compiler.java:7062)
	at clojure.lang.Compiler.eval(Compiler.java:7051)
	at clojure.lang.Compiler.load(Compiler.java:7514)
	at clojure.lang.RT.loadResourceScript(RT.java:379)
	at clojure.lang.RT.loadResourceScript(RT.java:370)
	at clojure.lang.RT.load(RT.java:460)
	at clojure.lang.RT.load(RT.java:426)
	at clojure.core$load$fn__6548.invoke(core.clj:6046)
	at clojure.core$load.invokeStatic(core.clj:6045)
	at clojure.core$load.doInvoke(core.clj:6029)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invokeStatic(core.clj:5848)
	at clojure.core$load_one.invoke(core.clj:5843)
	at clojure.core$load_lib$fn__6493.invoke(core.clj:5888)
	at clojure.core$load_lib.invokeStatic(core.clj:5887)
	at clojure.core$load_lib.doInvoke(core.clj:5868)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:659)
	at clojure.core$load_libs.invokeStatic(core.clj:5925)
	at clojure.core$load_libs.doInvoke(core.clj:5909)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invokeStatic(core.clj:659)
	at clojure.core$require.invokeStatic(core.clj:5947)
	at clojure.core$require.doInvoke(core.clj:5947)
	at clojure.lang.RestFn.invoke(RestFn.java:930)
	at midje.emission.plugins.util$eval3869$loading__6434__auto____3870.invoke(util.clj:1)
	at midje.emission.plugins.util$eval3869.invokeStatic(util.clj:1)
	at midje.emission.plugins.util$eval3869.invoke(util.clj:1)
	at clojure.lang.Compiler.eval(Compiler.java:7062)
	at clojure.lang.Compiler.eval(Compiler.java:7051)
	at clojure.lang.Compiler.load(Compiler.java:7514)
	at clojure.lang.RT.loadResourceScript(RT.java:379)
	at clojure.lang.RT.loadResourceScript(RT.java:370)
	at clojure.lang.RT.load(RT.java:460)
	at clojure.lang.RT.load(RT.java:426)
	at clojure.core$load$fn__6548.invoke(core.clj:6046)
	at clojure.core$load.invokeStatic(core.clj:6045)
	at clojure.core$load.doInvoke(core.clj:6029)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invokeStatic(core.clj:5848)
	at clojure.core$load_one.invoke(core.clj:5843)
	at clojure.core$load_lib$fn__6493.invoke(core.clj:5888)
	at clojure.core$load_lib.invokeStatic(core.clj:5887)
	at clojure.core$load_lib.doInvoke(core.clj:5868)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:659)
	at clojure.core$load_libs.invokeStatic(core.clj:5925)
	at clojure.core$load_libs.doInvoke(core.clj:5909)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invokeStatic(core.clj:659)
	at clojure.core$require.invokeStatic(core.clj:5947)
	at clojure.core$require.doInvoke(core.clj:5947)
	at clojure.lang.RestFn.invoke(RestFn.java:619)
	at midje.emission.plugins.default$eval3861$loading__6434__auto____3862.invoke(default.clj:1)
	at midje.emission.plugins.default$eval3861.invokeStatic(default.clj:1)
	at midje.emission.plugins.default$eval3861.invoke(default.clj:1)
	at clojure.lang.Compiler.eval(Compiler.java:7062)
	at clojure.lang.Compiler.eval(Compiler.java:7051)
	at clojure.lang.Compiler.load(Compiler.java:7514)
	at clojure.lang.RT.loadResourceScript(RT.java:379)
	at clojure.lang.RT.loadResourceScript(RT.java:370)
	at clojure.lang.RT.load(RT.java:460)
	at clojure.lang.RT.load(RT.java:426)
	at clojure.core$load$fn__6548.invoke(core.clj:6046)
	at clojure.core$load.invokeStatic(core.clj:6045)
	at clojure.core$load.doInvoke(core.clj:6029)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invokeStatic(core.clj:5848)
	at clojure.core$load_one.invoke(core.clj:5843)
	at clojure.core$load_lib$fn__6493.invoke(core.clj:5888)
	at clojure.core$load_lib.invokeStatic(core.clj:5887)
	at clojure.core$load_lib.doInvoke(core.clj:5868)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:659)
	at clojure.core$load_libs.invokeStatic(core.clj:5925)
	at clojure.core$load_libs.doInvoke(core.clj:5909)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invokeStatic(core.clj:659)
	at clojure.core$require.invokeStatic(core.clj:5947)
	at clojure.core$require.doInvoke(core.clj:5947)
	at clojure.lang.RestFn.invoke(RestFn.java:421)
	at midje.emission.api$load_plugin.invokeStatic(api.clj:23)
	at midje.emission.api$load_plugin.invoke(api.clj:21)
	at midje.bootstrap$bootstrap.invokeStatic(bootstrap.clj:19)
	at midje.bootstrap$bootstrap.invoke(bootstrap.clj:9)
	at midje.repl$eval3855.invokeStatic(sweet.clj:2)
	at midje.repl$eval3855.invoke(sweet.clj:2)
	at clojure.lang.Compiler.eval(Compiler.java:7062)
	at clojure.lang.Compiler.load(Compiler.java:7514)
	at clojure.lang.RT.loadResourceScript(RT.java:379)
	at clojure.lang.RT.loadResourceScript(RT.java:370)
	at clojure.lang.RT.load(RT.java:460)
	at clojure.lang.RT.load(RT.java:426)
	at clojure.core$load$fn__6548.invoke(core.clj:6046)
	at clojure.core$load.invokeStatic(core.clj:6045)
	at clojure.core$load.doInvoke(core.clj:6029)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invokeStatic(core.clj:5848)
	at clojure.core$load_one.invoke(core.clj:5843)
	at clojure.core$load_lib$fn__6493.invoke(core.clj:5888)
	at clojure.core$load_lib.invokeStatic(core.clj:5887)
	at clojure.core$load_lib.doInvoke(core.clj:5868)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:659)
	at clojure.core$load_libs.invokeStatic(core.clj:5925)
	at clojure.core$load_libs.doInvoke(core.clj:5909)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invokeStatic(core.clj:659)
	at clojure.core$require.invokeStatic(core.clj:5947)
	at clojure.core$require.doInvoke(core.clj:5947)
	at clojure.lang.RestFn.invoke(RestFn.java:3659)
	at midje.repl$eval1302$loading__6434__auto____1303.invoke(repl.clj:1)
	at midje.repl$eval1302.invokeStatic(repl.clj:1)
	at midje.repl$eval1302.invoke(repl.clj:1)
	at clojure.lang.Compiler.eval(Compiler.java:7062)
	at clojure.lang.Compiler.eval(Compiler.java:7051)
	at clojure.lang.Compiler.load(Compiler.java:7514)
	at clojure.lang.RT.loadResourceScript(RT.java:379)
	at clojure.lang.RT.loadResourceScript(RT.java:370)
	at clojure.lang.RT.load(RT.java:460)
	at clojure.lang.RT.load(RT.java:426)
	at clojure.core$load$fn__6548.invoke(core.clj:6046)
	at clojure.core$load.invokeStatic(core.clj:6045)
	at clojure.core$load.doInvoke(core.clj:6029)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at clojure.core$load_one.invokeStatic(core.clj:5848)
	at clojure.core$load_one.invoke(core.clj:5843)
	at clojure.core$load_lib$fn__6493.invoke(core.clj:5888)
	at clojure.core$load_lib.invokeStatic(core.clj:5887)
	at clojure.core$load_lib.doInvoke(core.clj:5868)
	at clojure.lang.RestFn.applyTo(RestFn.java:142)
	at clojure.core$apply.invokeStatic(core.clj:659)
	at clojure.core$load_libs.invokeStatic(core.clj:5925)
	at clojure.core$load_libs.doInvoke(core.clj:5909)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invokeStatic(core.clj:659)
	at clojure.core$require.invokeStatic(core.clj:5947)
	at clojure.core$require.doInvoke(core.clj:5947)
	at clojure.lang.RestFn.invoke(RestFn.java:408)
	at user$eval1296.invokeStatic(form-init4003177162275269785.clj:1)
	at user$eval1296.invoke(form-init4003177162275269785.clj:1)
	at clojure.lang.Compiler.eval(Compiler.java:7062)
	at clojure.lang.Compiler.eval(Compiler.java:7052)
	at clojure.lang.Compiler.eval(Compiler.java:7051)
	at clojure.lang.Compiler.load(Compiler.java:7514)
	at clojure.lang.Compiler.loadFile(Compiler.java:7452)
	at clojure.main$load_script.invokeStatic(main.clj:278)
	at clojure.main$init_opt.invokeStatic(main.clj:280)
	at clojure.main$init_opt.invoke(main.clj:280)
	at clojure.main$initialize.invokeStatic(main.clj:311)
	at clojure.main$null_opt.invokeStatic(main.clj:345)
	at clojure.main$null_opt.invoke(main.clj:342)
	at clojure.main$main.invokeStatic(main.clj:424)
	at clojure.main$main.doInvoke(main.clj:387)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.lang.Var.applyTo(Var.java:702)
	at clojure.main.main(main.java:37)
Caused by: java.lang.IllegalArgumentException: Must hint overloaded method: toArray
	at clojure.lang.Compiler$NewInstanceMethod.parse(Compiler.java:8375)
	at clojure.lang.Compiler$NewInstanceExpr.build(Compiler.java:7937)
	at clojure.lang.Compiler$NewInstanceExpr$DeftypeParser.parse(Compiler.java:7813)
	at clojure.lang.Compiler.analyzeSeq(Compiler.java:7003)
	... 280 more

Print path to file containing failed test

Test output for a failed test is something along the lines of:

FAIL at (package_version.clj:38)

It would be helpful if the file contained either the full or relative path. Reason being is that with noir projects you might have multiple files with the same name but under different paths say for views, models etc..

If you point me in the right direction I'll do the change and submit a pull request if you would like.

No label/title for Midje plugin in tasks list

When I run 'lein' it lists out each available plugin, with a short description of that plugin to the right. Midje has no label/title in that spot. I took a look to see if there was a way to give Midje something there, but couldn't find where it would go. Maybe it isn't possible to do? (Slamhound has no title either and was created by Leiningen's maintainer, so, maybe it just isn't possible)

:autotest does not rerun tests in external dependencies

Description

lein midje :autotest will not rerun tests in external dependencies after modifying .clj files under src/ folder.

Steps to reproduce bug (example project)

  1. Clone training-day repository git clone https://github.com/iloveponies/training-day.git
  2. Go to project directory and run lein midje :autotest. 6 checks should fail.
  3. Edit square fn in src/training_day.clj to return (* x x) instead of ":(".
  4. Midje should return "No facts were checked. Is that what you wanted?"

Actual expectation

lein midje :autotest should really be returning "3 checks failed. (But 3 succeeded.)" in step 4, but it doesn't seem to reload the external dependencies where the tests are located.

The test file training_day_test.clj contains only a reference to a namespace containing all of the tests:

(ns training-day-test
  (:use iloveponies.tests.training-day))

This is the only test file in this project.

Related to #48. Also related issues from iloveponies' repositories:

lein midje --lazytest fails even though lein midje works, wrongly colorizes on Windows

PS C:\Projects\CDT\Newton> lein version
Leiningen 1.7.0-SNAPSHOT on Java 1.7.0_01 Java HotSpot(TM) 64-Bit Server VM
PS C:\Projects\CDT\Newton> ls $env:userprofile/.lein/plugins
PS C:\Projects\CDT\Newton> cat .\project.clj
(defproject Newton "1.0.0-SNAPSHOT"
:description "Newtonian Approximation for Causal Dynamical Triangulations in
Clojure"
:url "https://github.com/ucdavis/CDT"
:dependencies [[org.clojure/clojure "1.3.0"]]
:marginalia {:javascript["mathjax/MathJax.js"]}
:test-selectors {:default (fn [v](not %28:utilities v%29))
:utilities :utilities
:all (fn [_] true)}
:dev-dependencies [[lein-ring "0.4.5"]
[lein-marginalia "0.6.1"]
[midje "1.3.1"]
[lein-midje "1.0.7"]
[com.stuartsierra/lazytest "1.2.3"]]
:repositories {"stuart" "http://stuartsierra.com/maven2"})
PS C:\Projects\CDT\Newton> lein clean
PS C:\Projects\CDT\Newton> lein deps
[INFO] artifact org.clojure:clojure: checking for updates from clojars
[INFO] artifact org.clojure:clojure: checking for updates from stuart
[INFO] artifact org.clojure:clojure: checking for updates from central
Copying 2 files to C:\Projects\CDT\Newton\lib\dev
PS C:\Projects\CDT\Newton> lein midje
All claimed facts (4) have been confirmed.
PS C:\Projects\CDT\Newton> lein midje --lazytest

<ScheduledThreadPoolExecutor java.util.concurrent.ScheduledThreadPoolExecutor@7

497e90e[Running, pool size = 1, active threads = 1, queued tasks = 0, completed
tasks = 0]>

At #<Date Sun Jan 08 00:17:05 PST 2012>
Reloading Newton.test.utilities, Newton.utilities, Newton.simplex
ERROR: #
java.lang.ClassCastException: clojure.lang.PersistentList cannot be cast to cloj
ure.lang.IFn

โ†[31mERROR while loading:โ†[0m

<ClassCastException java.lang.ClassCastException: clojure.lang.PersistentList c

annot be cast to clojure.lang.IFn>
at lazytest.watch$reload_and_run.invoke(watch.clj:23)
at lazytest.watch$reloading_runner$fn__352.invoke(watch.clj:35)
at clojure.lang.AFn.run(AFn.java:24)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source)

    at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.

access$301(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

java.lang.ClassCastException: clojure.lang.PersistentList cannot be cast to cloj
ure.lang.IFn
at lazytest.watch$reload_and_run.invoke(watch.clj:23)
at lazytest.watch$reloading_runner$fn__352.invoke(watch.clj:35)
At #<Date Sun Jan 08 00:17:20 PST 2012>
Reloading Newton.simplex
ERROR: #

โ†[31mERROR while loading:โ†[0m

<ClassCastException java.lang.ClassCastException: clojure.lang.PersistentList c

annot be cast to clojure.lang.IFn>
at clojure.lang.AFn.run(AFn.java:24)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source)

    at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.

access$301(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.
run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Terminate batch job (Y/N)? y
PS C:\Projects\CDT\Newton>

Also colorizing wrongly, even though MIDJE_COLORIZE is set to false:

PS C:\Projects\CDT\Newton> $env:midje_colorize
false

lein midje exits with status 0 on FAILURE

I call lein midje from a pre-commit hook, and rely on the command exit status to proceed or abandon commit. Yet, when all tests succeed but there is some kind of unrelated failure like this one: FAILURE: These files have broken namespaces and will not be loaded., lein midje will exit with 0 status. I think this is undesirable.
screen shot 2014-03-01 at 22 59 22

lein-midje not working with high-level Leiningen tasks (in plugin projects)

Let's say I have the following in my project.clj:

...
  :eval-in :leiningen
  :profiles {:midje {:dependencies [[midje "1.5.1"]]
                     :plugins [[lein-midje "3.1.3-RC2"]]}}
...

No tests are defined so far, so midje should not encounter any failures. I call:

$ lein with-profile midje midje
Performing task 'midje' with profile(s): 'midje'
No facts were checked. Is that what you wanted?
Error encountered performing task 'midje' with profile(s): 'midje'
Suppressed exit

Exit code is 1, things like TravisCI will fail. Note that this works fine for non-:eval-in-leiningen projects, the fact that leiningen.core.main/exit is called even if no failure is encountered just breaks testing of, e.g., plugin projects in that manner.

clojure/tools.namespace required ?

I tried without and lein midje where complaining about the lack of tools.namespace, I add tools.namespace and it worked without any problem.

I believe that tools.namespace should be added to the dependencies...

Wildcard namespace matcing doesn't work

Under lein2-preview10 with midje 0.4.0 and lein-midje 2.0.0-SNAPSHOT wildcard namespace matching doesn't pick up existing facts.
Tests are under the ccplot.t-compile namespace in the file <project_root>/test/ccplot/t_compile.clj.
Running lein midje ccplot.* finds 0 facts, even though two exist within that file and running lein midje or lein midje ccplot.t-compile both work fine.

printing all tests in "lein midje"

Hi,

I would like to print the statements of all facts / fact, also the ones that succeed. Is that possible ?

Currently when I run lein midje, it only prints the statements of the ones that fail.

Thanks,
Murtaza

Colorized output broken under Windows with lein-midje 1.0.6

I get the following outputs under Windows 7, 64 Bit:

lein-midje 1.0.6
M:\project>lein midje
โ†[32mAll claimed facts (0) have been confirmed.โ†[0m

Under 1.0.5 I had a readable output, without those arrows and brackets and numbers and m letters.

midje 2.0.4 fetches 2.0.3 ?

Retrieving lein-midje/lein-midje/2.0.3/lein-midje-2.0.3.pom from clojars
Retrieving lein-midje/lein-midje/2.0.3/lein-midje-2.0.3.jar from clojars

actual project.clj line:

:plugins [
            [lein-midje "2.0.4"]
            ]

and I'm therefore getting this error: #32
or more precisely:

s:\workspace2013\DeMLinks>lein midje
Retrieving lein-midje/lein-midje/2.0.3/lein-midje-2.0.3.pom from clojars
Retrieving lein-midje/lein-midje/2.0.3/lein-midje-2.0.3.jar from clojars
Exception in thread "main" clojure.lang.LispReader$ReaderException: java.lang.Ru
ntimeException: Unsupported character: \\*
        at clojure.lang.LispReader.read(LispReader.java:217)
        at clojure.core$read.invoke(core.clj:3402)
        at clojure.core$read.invoke(core.clj:3400)
        at clojure.main$eval_opt.invoke(main.clj:298)
        at clojure.main$initialize.invoke(main.clj:319)
        at clojure.main$null_opt.invoke(main.clj:354)
        at clojure.main$main$fn__6676.invoke(main.clj:432)
        at clojure.main$main.doInvoke(main.clj:429)
        at clojure.lang.RestFn.invoke(RestFn.java:421)
        at clojure.lang.Var.invoke(Var.java:419)
        at clojure.lang.AFn.applyToHelper(AFn.java:163)
        at clojure.lang.Var.applyTo(Var.java:532)
        at clojure.main.main(main.java:37)
Caused by: java.lang.RuntimeException: Unsupported character: \\*
        at clojure.lang.Util.runtimeException(Util.java:219)
        at clojure.lang.LispReader$CharacterReader.invoke(LispReader.java:964)
        at clojure.lang.LispReader.readDelimitedList(LispReader.java:1145)
        at clojure.lang.LispReader$ListReader.invoke(LispReader.java:979)
        at clojure.lang.LispReader.readDelimitedList(LispReader.java:1145)
        at clojure.lang.LispReader$ListReader.invoke(LispReader.java:979)
        at clojure.lang.LispReader.readDelimitedList(LispReader.java:1145)
        at clojure.lang.LispReader$ListReader.invoke(LispReader.java:979)
        at clojure.lang.LispReader.readDelimitedList(LispReader.java:1145)
        at clojure.lang.LispReader$ListReader.invoke(LispReader.java:979)
        at clojure.lang.LispReader.readDelimitedList(LispReader.java:1145)
        at clojure.lang.LispReader$ListReader.invoke(LispReader.java:979)
        at clojure.lang.LispReader.readDelimitedList(LispReader.java:1145)
        at clojure.lang.LispReader$ListReader.invoke(LispReader.java:979)
        at clojure.lang.LispReader.readDelimitedList(LispReader.java:1145)
        at clojure.lang.LispReader$ListReader.invoke(LispReader.java:979)
        at clojure.lang.LispReader.readDelimitedList(LispReader.java:1145)
        at clojure.lang.LispReader$ListReader.invoke(LispReader.java:979)
        at clojure.lang.LispReader.readDelimitedList(LispReader.java:1145)
        at clojure.lang.LispReader$ListReader.invoke(LispReader.java:979)
        at clojure.lang.LispReader.readDelimitedList(LispReader.java:1145)
        at clojure.lang.LispReader$ListReader.invoke(LispReader.java:979)
        at clojure.lang.LispReader.read(LispReader.java:182)
        ... 12 more
Subprocess failed

EDIT:

 :dependencies [
                 [org.clojure/clojure "1.5.0-RC2"]
                 [com.datomic/datomic-free "0.8.3731"]
                 [midje "1.4.0"]
                 [org.clojure/tools.trace "0.7.5"]
                 ]

lein-midje fails occasionally, 'lein clean' fixes it

After writing code and running 'lein midje' for a while occasionally midje breaks, I can't run more test, instead I get the stacktrace shown below. Running 'lein clean' (or 'lein do clean, midje') fixes it,

$ lein midje

Exception in thread "main" java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:270)
at clojure.lang.RT.loadClassForName(RT.java:2098)
at clojure.lang.RT.load(RT.java:430)
at clojure.lang.RT.load(RT.java:411)
at clojure.core$load$fn__5018.invoke(core.clj:5530)
at clojure.core$load.doInvoke(core.clj:5529)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invoke(core.clj:5336)
at clojure.core$load_lib$fn__4967.invoke(core.clj:5375)
at clojure.core$load_lib.doInvoke(core.clj:5374)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:619)
at clojure.core$load_libs.doInvoke(core.clj:5413)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:619)
at clojure.core$require.doInvoke(core.clj:5496)
at clojure.lang.RestFn.invoke(RestFn.java:2088)
at midje.repl$eval15$loading__4910__auto____16.invoke(repl.clj:1)
at midje.repl$eval15.invoke(repl.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:6619)
at clojure.lang.Compiler.eval(Compiler.java:6608)
at clojure.lang.Compiler.load(Compiler.java:7064)
at clojure.lang.RT.loadResourceScript(RT.java:370)
at clojure.lang.RT.loadResourceScript(RT.java:361)
at clojure.lang.RT.load(RT.java:440)
at clojure.lang.RT.load(RT.java:411)
at clojure.core$load$fn__5018.invoke(core.clj:5530)
at clojure.core$load.doInvoke(core.clj:5529)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invoke(core.clj:5336)
at clojure.core$load_lib$fn__4967.invoke(core.clj:5375)
at clojure.core$load_lib.doInvoke(core.clj:5374)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invoke(core.clj:619)
at clojure.core$load_libs.doInvoke(core.clj:5413)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invoke(core.clj:619)
at clojure.core$require.doInvoke(core.clj:5496)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at user$eval11.invoke(form-init5306884430924513154.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:6619)
at clojure.lang.Compiler.eval(Compiler.java:6609)
at clojure.lang.Compiler.eval(Compiler.java:6608)
at clojure.lang.Compiler.load(Compiler.java:7064)
at clojure.lang.Compiler.loadFile(Compiler.java:7020)
at clojure.main$load_script.invoke(main.clj:294)
at clojure.main$init_opt.invoke(main.clj:299)
at clojure.main$initialize.invoke(main.clj:327)
at clojure.main$null_opt.invoke(main.clj:362)
at clojure.main$main.doInvoke(main.clj:440)
at clojure.lang.RestFn.invoke(RestFn.java:421)
at clojure.lang.Var.invoke(Var.java:419)
at clojure.lang.AFn.applyToHelper(AFn.java:163)
at clojure.lang.Var.applyTo(Var.java:532)
at clojure.main.main(main.java:37)
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.(Unknown Source)

Cannot get midje to run in repl

Hello and congrats to a great project,

I cannot get a certain thing to run though:

$ lein update-in :dependencies conj '[lein-midje "3.0.0"]' -- repl
user=> (use 'midje.repl)

FileNotFoundException Could not locate midje/repl__init.class or midje/repl.clj on classpath. clojure.lang.RT.load (RT.java:456)

Seems related to #34 but IDK hwo to bind the 1.5-alpha5 right away in lein repl. Is that possible inside the repl or is a profile file crucial?

Lein 1 version blows up when using wildcard namespaces

No matching field found: replaceAll for class java.lang.String clojure.lang.Reflector.getInstanceField (Reflector.java:289)

Weird. It's complaining about there being no field, when it should be finding the METHOD.

bultitude/core.clj not found when used with Leiningen 2.0.0-RC1

When running lein-midje with version Leiningen 2.0.0-RC1 the following error is thrown (bultitude is a dependency of Midje):

Exception in thread "main" java.io.FileNotFoundException: Could not locate bultitude/core__init.class or bultitude/core.clj on classpath: 
    at clojure.lang.RT.load(RT.java:432)
    at clojure.lang.RT.load(RT.java:400)
    at clojure.core$load$fn__4890.invoke(core.clj:5415)
    at clojure.core$load.doInvoke(core.clj:5414)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5227)
    at clojure.core$load_lib.doInvoke(core.clj:5264)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:603)
    at clojure.core$load_libs.doInvoke(core.clj:5298)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:603)
    at clojure.core$require.doInvoke(core.clj:5381)
    at clojure.lang.RestFn.invoke(RestFn.java:436)
    at user$eval1.invoke(NO_SOURCE_FILE:1)
    at clojure.lang.Compiler.eval(Compiler.java:6511)
    at clojure.lang.Compiler.eval(Compiler.java:6500)
    at clojure.lang.Compiler.eval(Compiler.java:6477)
    at clojure.core$eval.invoke(core.clj:2797)
    at clojure.main$eval_opt.invoke(main.clj:297)
    at clojure.main$initialize.invoke(main.clj:316)
    at clojure.main$null_opt.invoke(main.clj:349)
    at clojure.main$main.doInvoke(main.clj:427)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.lang.Var.invoke(Var.java:419)
    at clojure.lang.AFn.applyToHelper(AFn.java:163)
    at clojure.lang.Var.applyTo(Var.java:532)
    at clojure.main.main(main.java:37)

lein midje command doesn't work in 2.0.3

Command "lein midje" doesn't work at all in 2.0.3. Downgrading lein-midje to 2.0.1 fixes the problem. To replicate the issue create an empty project with nothing at all with a following project.clj:

(defproject test-prj "0.1.0-SNAPSHOT"
  :profiles {:dev {:plugins [[lein-midje "2.0.3"]]
                   :dependencies [[midje "1.4.0"]]}})

and just type "lein midje". You'll face a following stacktrace:

Exception in thread "main" clojure.lang.LispReader$ReaderException: java.lang.RuntimeException: Unsupported character: \\*
        at clojure.lang.LispReader.read(LispReader.java:215)
        at clojure.core$read.invoke(core.clj:3346)
        at clojure.core$read.invoke(core.clj:3344)
        at clojure.main$eval_opt.invoke(main.clj:295)
        at clojure.main$initialize.invoke(main.clj:316)
        at clojure.main$null_opt.invoke(main.clj:349)
        at clojure.main$main.doInvoke(main.clj:427)
        at clojure.lang.RestFn.invoke(RestFn.java:421)
        at clojure.lang.Var.invoke(Var.java:419)
        at clojure.lang.AFn.applyToHelper(AFn.java:163)
        at clojure.lang.Var.applyTo(Var.java:532)
        at clojure.main.main(main.java:37)
Caused by: java.lang.RuntimeException: Unsupported character: \\*
        at clojure.lang.Util.runtimeException(Util.java:170)
        at clojure.lang.LispReader$CharacterReader.invoke(LispReader.java:951)
        at clojure.lang.LispReader.readDelimitedList(LispReader.java:1126)
        at clojure.lang.LispReader$ListReader.invoke(LispReader.java:962)
        at clojure.lang.LispReader.readDelimitedList(LispReader.java:1126)
        at clojure.lang.LispReader$ListReader.invoke(LispReader.java:962)
        at clojure.lang.LispReader.readDelimitedList(LispReader.java:1126)
        at clojure.lang.LispReader$ListReader.invoke(LispReader.java:962)
        at clojure.lang.LispReader.readDelimitedList(LispReader.java:1126)
        at clojure.lang.LispReader$ListReader.invoke(LispReader.java:962)
        at clojure.lang.LispReader.readDelimitedList(LispReader.java:1126)
        at clojure.lang.LispReader$ListReader.invoke(LispReader.java:962)
        at clojure.lang.LispReader.readDelimitedList(LispReader.java:1126)
        at clojure.lang.LispReader$ListReader.invoke(LispReader.java:962)
        at clojure.lang.LispReader.readDelimitedList(LispReader.java:1126)
        at clojure.lang.LispReader$ListReader.invoke(LispReader.java:962)
        at clojure.lang.LispReader.readDelimitedList(LispReader.java:1126)
        at clojure.lang.LispReader$ListReader.invoke(LispReader.java:962)
        at clojure.lang.LispReader.readDelimitedList(LispReader.java:1126)
        at clojure.lang.LispReader$ListReader.invoke(LispReader.java:962)
        at clojure.lang.LispReader.readDelimitedList(LispReader.java:1126)
        at clojure.lang.LispReader$ListReader.invoke(LispReader.java:962)
        at clojure.lang.LispReader.read(LispReader.java:180)
        ... 11 more

Environment: Windows 7 x64, Java 1.7.0_09 32-bit, Leiningen 2.0.0-preview10.

This bug occurs also with Midje 1.5-alpha3.

src/leiningen/midje.clj: make-load-facts-form might use error code >125

In src/leiningen/midje.clj, make-load-facts-form limits the error code to 255, which is unsafe as it might clash with error codes reserved by the shell - see e.g. man 1 bash:

EXIT STATUS
       The  exit  status  of  an  executed  command is the value returned by the
       waitpid system call or equivalent function.  Exit statuses fall between 0
       and 255, though, as explained below, the shell may use values above 125
       specially.  Exit statuses from shell builtins and compound commands are
       also limited to this range. Under certain circumstances, the shell will use
       special values to indicate specific failure modes.

       For the shell's purposes, a command which exits with a zero exit status
       has succeeded.  An exit status of zero indicates success.  A non-zero exit
       status indicates failure.  When a command terminates on a fatal signal N,
       bash uses the value of 128+N as the exit status.

       If a command is not found, the child process created to execute it returns
       a status of 127.  If a command is found but is not executable, the return
       status is 126.

       If a command fails because of an error during expansion or redirection, the
       exit status is greater than zero.

       Shell builtin commands return a status of 0 (true) if successful, and
       non-zero (false) if an error occurs while they execute.  All builtins return
       an exit status of 2 to indicate incorrect usage.

       Bash itself returns the exit status of the last command executed, unless a
       syntax error occurs, in which case it exits with a non-zero value.  See also
       the exit builtin command below.

WARNING: any? already refers to: #'clojure.core/any? in namespace: leiningen.midje, being replaced by: #'leiningen.midje/any?

Running lein midje with Clojure 1.10.1, Leiningen 2.9.1 and lein-midje 3.2.1 gives this warning:

WARNING: any? already refers to: #'clojure.core/any? in namespace: leiningen.midje, being replaced by: #'leiningen.midje/any?

Probably related to this function name:
https://github.com/marick/lein-midje/blob/master/src/leiningen/midje.clj#L57
https://github.com/marick/lein-midje/blob/master/src/leiningen/midje.clj#L88

lein midje --lazytest incompatible with lein-swank

lein midje --lazytest is working but breaks lein-swank, details below.

$ lein version
Leiningen 1.6.2 on Java 1.6.0_26 Java HotSpot(TM) Client VM

$ ls ~/.lein/plugins/
lein-midje-1.0.7.jar  swank-clojure-1.3.3.jar

$ lein new lazytest-vs-swank
Created new project in: /home/denis/tmp/lazytest-vs-swank
Look over project.clj and start coding in lazytest_vs_swank/core.clj
$ cd lazytest-vs-swank/

$ lein swank
Copying 1 file to /home/denis/tmp/lazytest-vs-swank/lib
Connection opened on localhost port 4005.
$ '################################> cool lein-swank works!'

$ emacs project.clj 
$ cat project.clj 
(defproject lazytest-vs-swank "1.0.0-SNAPSHOT"
  :description "FIXME: write description"
  :dependencies [[org.clojure/clojure "1.3.0"]]
  :dev-dependencies [[midje "1.3.0-RC4"]])

$ lein swank
Copying 1 file to /home/denis/tmp/lazytest-vs-swank/lib
Copying 10 files to /home/denis/tmp/lazytest-vs-swank/lib/dev
Connection opened on localhost port 4005.
$ '################################> cool lein-swank still working!'

$ emacs project.clj 
$ cat project.clj 
(defproject lazytest-vs-swank "1.0.0-SNAPSHOT"
  :description "FIXME: write description"
  :dependencies [[org.clojure/clojure "1.3.0"]]
  :dev-dependencies [[midje "1.3.0-RC4"]])
$ em project.clj 
$ lein midje --lazytest
Copying 1 file to /home/denis/tmp/lazytest-vs-swank/lib
Copying 13 files to /home/denis/tmp/lazytest-vs-swank/lib/dev
#<ScheduledThreadPoolExecutor java.util.concurrent.ScheduledThreadPoolExecutor@60029d>

======================================================================
Reloading lazytest-vs-swank.test.core, lazytest-vs-swank.core
Running examples at #<Date Sun Dec 11 18:20:52 CET 2011>

Done.
$ '################################> cool lazytest is working!'

$'################################> But then: '

$ lein swank
Warning: *log-events* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *log-events* or change the name.
Warning: *log-output* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *log-output* or change the name.
Warning: *namespace-re* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *namespace-re* or change the name.
Warning: *current-connection* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *current-connection* or change the name.
Warning: *default-encoding* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *default-encoding* or change the name.
Warning: *pre-reply-hook* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *pre-reply-hook* or change the name.
Warning: *pre-reply-hook* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *pre-reply-hook* or change the name.
Warning: *thread-map-next-id* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *thread-map-next-id* or change the name.
Warning: *thread-map-next-id* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *thread-map-next-id* or change the name.
Warning: *thread-map* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *thread-map* or change the name.
Warning: *thread-map* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *thread-map* or change the name.
Warning: *mailboxes* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *mailboxes* or change the name.
Warning: *mailboxes* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *mailboxes* or change the name.
Warning: *protocol-version* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *protocol-version* or change the name.
Warning: *protocol-version* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *protocol-version* or change the name.
Warning: *current-package* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *current-package* or change the name.
Warning: *pending-continuations* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *pending-continuations* or change the name.
Warning: *sldb-stepping-p* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *sldb-stepping-p* or change the name.
Warning: *sldb-initial-frames* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *sldb-initial-frames* or change the name.
Warning: *sldb-level* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *sldb-level* or change the name.
Warning: *sldb-restarts* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *sldb-restarts* or change the name.
Warning: *debug-swank-clojure* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *debug-swank-clojure* or change the name.
Warning: *active-threads* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *active-threads* or change the name.
Warning: *active-threads* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *active-threads* or change the name.
Warning: *debug-quit-exception* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *debug-quit-exception* or change the name.
Warning: *debug-quit-exception* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *debug-quit-exception* or change the name.
Warning: *debug-continue-exception* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *debug-continue-exception* or change the name.
Warning: *debug-continue-exception* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *debug-continue-exception* or change the name.
Warning: *debug-abort-exception* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *debug-abort-exception* or change the name.
Warning: *debug-abort-exception* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *debug-abort-exception* or change the name.
Warning: *current-exception* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *current-exception* or change the name.
Warning: *current-env* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *current-env* or change the name.
Warning: *connections* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *connections* or change the name.
Warning: *connections* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *connections* or change the name.
Warning: *compiler-exception-location-re* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *compiler-exception-location-re* or change the name.
Exception in thread "main" java.lang.RuntimeException: Unable to resolve symbol: print-doc in this context, compiling:(swank/commands/basic.clj:180)
    at clojure.lang.Compiler.analyze(Compiler.java:6235)
    at clojure.lang.Compiler.analyze(Compiler.java:6177)
    at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3452)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6411)
    at clojure.lang.Compiler.analyze(Compiler.java:6216)
    at clojure.lang.Compiler.analyze(Compiler.java:6177)
    at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5572)
    at clojure.lang.Compiler$TryExpr$Parser.parse(Compiler.java:2091)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6409)
    at clojure.lang.Compiler.analyze(Compiler.java:6216)
    at clojure.lang.Compiler.analyze(Compiler.java:6177)
    at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5572)
    at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:5873)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6409)
    at clojure.lang.Compiler.analyze(Compiler.java:6216)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6397)
    at clojure.lang.Compiler.analyze(Compiler.java:6216)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6397)
    at clojure.lang.Compiler.analyze(Compiler.java:6216)
    at clojure.lang.Compiler.analyze(Compiler.java:6177)
    at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5572)
    at clojure.lang.Compiler$LetExpr$Parser.parse(Compiler.java:5873)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6409)
    at clojure.lang.Compiler.analyze(Compiler.java:6216)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6397)
    at clojure.lang.Compiler.analyze(Compiler.java:6216)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6397)
    at clojure.lang.Compiler.analyze(Compiler.java:6216)
    at clojure.lang.Compiler.analyze(Compiler.java:6177)
    at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5572)
    at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5008)
    at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3629)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6407)
    at clojure.lang.Compiler.analyze(Compiler.java:6216)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6397)
    at clojure.lang.Compiler.analyze(Compiler.java:6216)
    at clojure.lang.Compiler.access$100(Compiler.java:37)
    at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:492)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6409)
    at clojure.lang.Compiler.analyze(Compiler.java:6216)
    at clojure.lang.Compiler.analyze(Compiler.java:6177)
    at clojure.lang.Compiler.eval(Compiler.java:6469)
    at clojure.lang.Compiler.load(Compiler.java:6902)
    at clojure.lang.RT.loadResourceScript(RT.java:357)
    at clojure.lang.RT.loadResourceScript(RT.java:348)
    at clojure.lang.RT.load(RT.java:427)
    at clojure.lang.RT.load(RT.java:398)
    at clojure.core$load$fn__4610.invoke(core.clj:5386)
    at clojure.core$load.doInvoke(core.clj:5385)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5200)
    at clojure.core$load_lib.doInvoke(core.clj:5237)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:602)
    at clojure.core$load_libs.doInvoke(core.clj:5275)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:602)
    at clojure.core$require.doInvoke(core.clj:5352)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at swank.swank$eval35$loading__4505__auto____36.invoke(swank.clj:11)
    at swank.swank$eval35.invoke(swank.clj:11)
    at clojure.lang.Compiler.eval(Compiler.java:6465)
    at clojure.lang.Compiler.eval(Compiler.java:6455)
    at clojure.lang.Compiler.load(Compiler.java:6902)
    at clojure.lang.RT.loadResourceScript(RT.java:357)
    at clojure.lang.RT.loadResourceScript(RT.java:348)
    at clojure.lang.RT.load(RT.java:427)
    at clojure.lang.RT.load(RT.java:398)
    at clojure.core$load$fn__4610.invoke(core.clj:5386)
    at clojure.core$load.doInvoke(core.clj:5385)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5200)
    at clojure.core$load_lib.doInvoke(core.clj:5237)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:602)
    at clojure.core$load_libs.doInvoke(core.clj:5271)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:602)
    at clojure.core$require.doInvoke(core.clj:5352)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at user$eval27.invoke(NO_SOURCE_FILE:1)
    at clojure.lang.Compiler.eval(Compiler.java:6465)
    at clojure.lang.Compiler.eval(Compiler.java:6455)
    at clojure.lang.Compiler.eval(Compiler.java:6431)
    at clojure.core$eval.invoke(core.clj:2795)
    at clojure.main$eval_opt.invoke(main.clj:296)
    at clojure.main$initialize.invoke(main.clj:315)
    at clojure.main$null_opt.invoke(main.clj:348)
    at clojure.main$main.doInvoke(main.clj:426)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.lang.Var.invoke(Var.java:405)
    at clojure.lang.AFn.applyToHelper(AFn.java:163)
    at clojure.lang.Var.applyTo(Var.java:518)
    at clojure.main.main(main.java:37)
Caused by: java.lang.RuntimeException: Unable to resolve symbol: print-doc in this context
    at clojure.lang.Util.runtimeException(Util.java:156)
    at clojure.lang.Compiler.resolveIn(Compiler.java:6720)
    at clojure.lang.Compiler.resolve(Compiler.java:6664)
    at clojure.lang.Compiler.analyzeSymbol(Compiler.java:6625)
    at clojure.lang.Compiler.analyze(Compiler.java:6198)
    ... 93 more
$

It looks like an incompatibility between lazytest and clojure 1.3.0 that don't appears when doing lein midje or lein midje --lazytest but is triggered by the usage of lein-swank

By the way the new colors are pretty cool, and lazytest very comfortable

lein-midje is not compatible with lein 2.8.0 (latest release)

(moved over from marick/Midje#406)

Running lein midje with Leiningen 2.8.0 (the latest release) results in java.lang.RuntimeException: No reader function for tag object.

Environment:

$ java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
$ lein --version
Leiningen 2.8.0 on Java 1.8.0_131 Java HotSpot(TM) 64-Bit Server VM

Full output of lein midje command, run against this project:

$ lein midje
Java HotSpot(TM) 64-Bit Server VM warning: Unable to open cgroup memory limit file /sys/fs/cgroup/memory/memory.limit_in_bytes (No such file or directory)
Exception in thread "main" java.lang.RuntimeException: No reader function for tag object, compiling:(/private/var/folders/gd/_mvxtqgd55vdxx76gq4bdx2w0000gn/T/form-init5582883654588722159.clj:1:8406)
	at clojure.lang.Compiler.load(Compiler.java:7386)
	at clojure.lang.Compiler.loadFile(Compiler.java:7317)
	at clojure.main$load_script.invokeStatic(main.clj:275)
	at clojure.main$init_opt.invokeStatic(main.clj:277)
	at clojure.main$init_opt.invoke(main.clj:277)
	at clojure.main$initialize.invokeStatic(main.clj:308)
	at clojure.main$null_opt.invokeStatic(main.clj:342)
	at clojure.main$null_opt.invoke(main.clj:339)
	at clojure.main$main.invokeStatic(main.clj:421)
	at clojure.main$main.doInvoke(main.clj:384)
	at clojure.lang.RestFn.invoke(RestFn.java:421)
	at clojure.lang.Var.invoke(Var.java:383)
	at clojure.lang.AFn.applyToHelper(AFn.java:156)
	at clojure.lang.Var.applyTo(Var.java:700)
	at clojure.main.main(main.java:37)
Caused by: java.lang.RuntimeException: No reader function for tag object
	at clojure.lang.LispReader$CtorReader.readTagged(LispReader.java:1245)
	at clojure.lang.LispReader$CtorReader.invoke(LispReader.java:1228)
	at clojure.lang.LispReader$DispatchReader.invoke(LispReader.java:684)
	at clojure.lang.LispReader.read(LispReader.java:263)
	at clojure.lang.LispReader.read(LispReader.java:200)
	at clojure.lang.LispReader.access$200(LispReader.java:40)
	at clojure.lang.LispReader$MetaReader.invoke(LispReader.java:800)
	at clojure.lang.LispReader.read(LispReader.java:263)
	at clojure.lang.LispReader.readDelimitedList(LispReader.java:1200)
	at clojure.lang.LispReader$MapReader.invoke(LispReader.java:1158)
	at clojure.lang.LispReader.read(LispReader.java:263)
	at clojure.lang.LispReader.read(LispReader.java:200)
	at clojure.lang.LispReader.access$200(LispReader.java:40)
	at clojure.lang.LispReader$MetaReader.invoke(LispReader.java:792)
	at clojure.lang.LispReader.read(LispReader.java:263)
	at clojure.lang.LispReader.readDelimitedList(LispReader.java:1200)
	at clojure.lang.LispReader$VectorReader.invoke(LispReader.java:1150)
	at clojure.lang.LispReader.read(LispReader.java:263)
	at clojure.lang.LispReader.readDelimitedList(LispReader.java:1200)
	at clojure.lang.LispReader$MapReader.invoke(LispReader.java:1158)
	at clojure.lang.LispReader.read(LispReader.java:263)
	at clojure.lang.LispReader.read(LispReader.java:200)
	at clojure.lang.LispReader.access$200(LispReader.java:40)
	at clojure.lang.LispReader$MetaReader.invoke(LispReader.java:800)
	at clojure.lang.LispReader.read(LispReader.java:263)
	at clojure.lang.LispReader.readDelimitedList(LispReader.java:1200)
	at clojure.lang.LispReader$MapReader.invoke(LispReader.java:1158)
	at clojure.lang.LispReader.read(LispReader.java:263)
	at clojure.lang.LispReader.readDelimitedList(LispReader.java:1200)
	at clojure.lang.LispReader$MapReader.invoke(LispReader.java:1158)
	at clojure.lang.LispReader.read(LispReader.java:263)
	at clojure.lang.LispReader.read(LispReader.java:200)
	at clojure.lang.LispReader.access$200(LispReader.java:40)
	at clojure.lang.LispReader$MetaReader.invoke(LispReader.java:792)
	at clojure.lang.LispReader.read(LispReader.java:263)
	at clojure.lang.LispReader.readDelimitedList(LispReader.java:1200)
	at clojure.lang.LispReader$ListReader.invoke(LispReader.java:1049)
	at clojure.lang.LispReader.read(LispReader.java:263)
	at clojure.lang.LispReader.readDelimitedList(LispReader.java:1200)
	at clojure.lang.LispReader$ListReader.invoke(LispReader.java:1049)
	at clojure.lang.LispReader.read(LispReader.java:263)
	at clojure.lang.LispReader.readDelimitedList(LispReader.java:1200)
	at clojure.lang.LispReader$ListReader.invoke(LispReader.java:1049)
	at clojure.lang.LispReader.read(LispReader.java:263)
	at clojure.lang.LispReader.readDelimitedList(LispReader.java:1200)
	at clojure.lang.LispReader$ListReader.invoke(LispReader.java:1049)
	at clojure.lang.LispReader.read(LispReader.java:263)
	at clojure.lang.LispReader.read(LispReader.java:196)
	at clojure.lang.Compiler.load(Compiler.java:7374)
	... 14 more
Subprocess failed

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.