marick / lein-midje

Leiningen plugin for Midje
MIT License
77 stars 29 forks source link

:autotest does not rerun tests in external dependencies #62

Open ilmoraunio opened 7 years ago

ilmoraunio commented 7 years ago

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:

ilmoraunio commented 7 years ago

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.