I’m currently working on lein-testem, a Leiningen plugin designed to automatically detect how to run tests on a project. It will decide which test framework(s) to use and what profile combinations to examine. Head over to the GitHub page for a small example, or – if you dare – try it out by including the following into your ~/.lein/profiles.clj file:
You can then run:
$ lein testem
Currently supported are clojure.test and Midje, and maybe Speclj. But don’t misunderstand: You still have to include all plugins/dependencies associated with your test framework – you just don’t have to call them directly any more.
I want to include regression testing in lein-ancient, a plugin that enables you to check for outdated dependencies and to upgrade those in need. Upgrading should only be finalized if tests pass so I was faced with the problem of how to run existing tests without having to explicitly configure which framework they are based upon. lein-testem’s core functionality will thus end up in lein-ancient at some point.
I want to include common test scenarios (e.g. “test against different Clojure versions”, …) in the future. Ideas are always welcome, so fire away in the comment section!