-
Notifications
You must be signed in to change notification settings - Fork 129
What's new in midje 1.5
-
Midje has configuration files to control its behavior. Different configuration files can be selected from lein repl, which is useful for things like build servers.
-
There is now a plugin interface that allows you to customizing reporting. This is also useful for working with build servers.
-
The verbosity of Midje output can be controlled with print levels.
-
There's been a heavy emphasis on in-repl documentation. There are various
doc
arguments that summarize groups of command or general concepts. Aguide
command makes it easy to jump from the repl to the user manual (wiki). -
Facts can now have metadata. It can be used to pick a subset of facts to be checked, whether the compendium or via lein midje.
-
There is an experimental version of generative testing ("quickcheck"), due to Alex Baranosky.
-
Previously, loading facts checked them, then discarded them. They are now preserved in the compendium.
- If you're fond of working in the reply, there are a variety of repl tools to let you load facts, recheck them, delete them from the compendium, and so on. These are intended to support both in-repl use and use by smart editors.
-
You can autotesting in the repl, rather than just from
lein midje
. (An autotester tracks changes in files and retests as needed.) The in-repl version does not interfere (much) with your use of the repl. -
I've started to evolve the codebase to attract new committers.
The Midje codebase suffered from its history. It was my first Clojure project, developed to scratch a particular itch, and some early mistakes lingered way past May 23, 2010. (For example, some of the early names were–and remained–horrible.
Moreover, Midje has had an interesting evolution. It started as something that focused enormously on the macroexpansion of a particular syntax. It became a more normal program that works with runtime state. However the macroexpansion/parsing focus remained smeared all through the codebase, making it forbidding for new committers. The plugin interface for reporting is the first step toward making Midje properly modular, with the subtle code nicely encapsulated. More remains to be done.
-
There are a number of minor (and, I hope, invisible) usability improvements.
-
Clojure 1.2.X is no longer supported.