Я пытаюсь запустить свои модульные тесты для модуля python из отдельного тестового скрипта. Вот моя файловая структура
- root
|- modules
|- a_module.py
|- test
|- test_a_module.py
|- main.py
main.py
выглядит так:
import unittest
loader = unittest.TestLoader()
suite = loader.discover(start_dir='./test', pattern='test_*.py')
runner = unittest.TextTestRunner()
runner.run(suite)
А вот a_module.py
и test_a_module.py
:
# a_module.py
def something():
return True
# test_a_module.py
import unittest
from ..modules.a_module import something
class TestSomething(unittest.TestCase):
def test_something(self):
self.assertTrue(something)
При запуске python3 main.py
я получаю следующую ошибку.
======================================================================
ERROR: test_a_module (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: test_a_module
Traceback (most recent call last):
File "/usr/lib/python3.7/unittest/loader.py", line 436, in _find_test_path
module = self._get_module_from_name(name)
File "/usr/lib/python3.7/unittest/loader.py", line 377, in _get_module_from_name
__import__(name)
File "/home/schu_max/root/test/test_a_module.py", line 3, in <module>
from ..modules.a_module import something
ImportError: attempted relative import with no known parent package
----------------------------------------------------------------------
Я относительно новичок в python и не знаю, как решить эту проблему. И другие вопросы / ответы на SO тоже не были такими полезными. Так как мне заставить это работать?