Test system cannot differentiate between missing tests.py and import error in tests.py
|Reported by:||Russell Keith-Magee||Owned by:||Russell Keith-Magee|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
Ned Batchelder reports that because the test runner uses speculative imports to find tests that may or may not exist, ImportErrors in the tests themselves are usually cloaked, and are hard to debug.
One suggested fix is to modify django/test/simple.py, line 41, to this:
except ImportError, exc: # No tests.py file for application, or some other import error. if str(exc) != 'No module named %s' % TEST_MODULE: # It's something other than a missing tests module, probably a real # error, so show the user. import traceback traceback.print_exc()
This is less than ideal; testing error strings is fragile and prone to locale problems. Testing for the existence of tests.py is also unreliable; tests may be a directory module.