[Tutor] Test discovery not locating module to test

Peter Otten __peter__ at web.de
Thu Aug 20 09:37:18 CEST 2015


boB Stepp wrote:

> W7 64-bit.  Py 3.4.3
> 
> unittest result:
> 
> E:\Projects\mcm>python -m unittest
> E
> ======================================================================
> ERROR: test.db.test_mcm_db_mgr (unittest.loader.ModuleImportFailure)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "C:\Python34\lib\unittest\case.py", line 58, in testPartExecutor
>     yield
>   File "C:\Python34\lib\unittest\case.py", line 577, in run
>     testMethod()
>   File "C:\Python34\lib\unittest\loader.py", line 32, in testFailure
>     raise exception
> ImportError: Failed to import test module: test.db.test_mcm_db_mgr
> Traceback (most recent call last):
>   File "C:\Python34\lib\unittest\loader.py", line 312, in _find_tests
>     module = self._get_module_from_name(name)
>   File "C:\Python34\lib\unittest\loader.py", line 290, in
>   _get_module_from_name
>     __import__(name)
>   File "E:\Projects\mcm\test\db\test_mcm_db_mgr.py", line 22, in <module>
>     import mcm_db_mgr
> ImportError: No module named 'mcm_db_mgr'
> 
> 
> ----------------------------------------------------------------------
> Ran 1 test in 0.000s
> 
> FAILED (errors=1)
> 
> Relevant code in test_mcm_db_mgr.py:
> 
> import unittest
> 
> # import modules to be tested:
> import mcm_db_mgr
> 
> class MCMDBMgrTestCase(unittest.TestCase):
>     def setUp(self):
>         # Insert setup code here...
>         pass
> 
>     def test_open_mcm_db(self):
>         pass
> 
>     def tearDown(self):
>         # Insert tear-down code here...
>         pass
> 
> 
> I suspect that there is something wrong with my project structure.
> Currently it is as follows:
> 
> Projects/
> --mcm/
> ----.git/
> ----doc/
> ----src/
> ------db/
> --------__init__.py
> --------mcm_db_mgr.py
> ------ui/
> --------__init__.py
> ----test/
> ------db/
> --------__init__.py
> --------test_mcm_db_mgr.py
> ------ui/
> --------__init__.py
> ----.gitignore
> ----LICENSE.txt
> ----README.txt
> 
> All __init__.py files are currently empty.  Alex had asked a question
> very similar to this situation, and I thought I had understood the
> answer Laura had given, but apparently I do not understand.  Where am
> I going wrong this time?

Assuming E:/Projects/mcm/src is in the PYTHONPATH mcm_db_mgr.py (what an 
alphabet soup!) is part of your db package and has to be imported with

import db.mcm_db_mgr

or

from db import mcm_db_mgr

by modules outside the db package.




More information about the Tutor mailing list