: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)
- Clone
training-dayrepositorygit clone https://github.com/iloveponies/training-day.git - Go to project directory and run
lein midje :autotest. 6 checks should fail. - Edit
squarefn insrc/training_day.cljto return(* x x)instead of":(". - 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:
- https://github.com/iloveponies/training-day/issues/434
- https://github.com/iloveponies/120-hour-epic-sax-marathon/issues/31
A way to bypass the problem is to require the tests in a separate function call and require the namespace-under-test under ns:
(ns training-day-test
(:require [training-day :refer :all]))
(require 'iloveponies.tests.training-day :reload)
For me it's still unclear, if it's a bug in midje or a feature of clojure.