Organizing Django unit tests
django, unit-testing
Solution
From version 1.6 of Django, the test discovery mechanism changed. You no longer need to import everything from `tests/__init__.py`, but now you have to make sure that all your files containing tests match the pattern `test*.py`.
So, instead of having `app/tests/models.py` and `app/tests/views.py`, now you should have `app/tests/test_models.py` and `app/tests/test_views.py`.
You could also create a file named `app/tests/test.py` and include your other files from there. The thing is that the runner will look for files matching the pattern `test*.py` and execute them.
Problem
Right now I have my Django unit tests living at `mcif/tests.py`. I would prefer to have something more like `mcif/tests/foo_test.py`, `mcif/tests/bar_test.py`, etc., but if I organize my tests that way, Django flips out. Is there a way to do what I'm trying to do or do I have to have all my tests in one file?