2015-02-09 2 views
0

Прошу прощения за тупой вопрос, но я ударяю головой о стену последние два часа.Автоматическое тестирование вложенных пакетов

Я хочу использовать относительный импорт и моя структуру проекта выглядит следующим образом:

auto_testing 
+ tests 
    + __init__.py 
    + my_module.py 
+ src 
    + __init__.py 
    + my_module.py 
+ __init__.py 

Содержание tests/my_module.py являются:

import unittest 

from src.my_module import MyClass 

class TestMyClass(unittest.TestCase): 
    def setUp(self): 
     self.inst = MyClass() 

    def test_division_by_zero(self): 
     self.assertRaises(ZeroDivisionError, self.inst.divide, 1, 0) 

def run_tests(): 
    unittest.main() 

if __name__ == '__main__': 
    run_tests() 

Затем я запускать команды в терминале

cd auto_testing 
python3 -m tests.my_module 

и получите Error while finding spec for 'tests.my_module.py' (<class 'AttributeError'>: 'module' object has no attribute '__path__').

Когда я бегу

cd auto_testing 
python3 
import tests.my_module 
tests.my_module.run_tests() 

я Ran 0 tests (почему не было обнаружено никаких тестов должен быть еще один вопрос, но дело в том, что MyClass импортируется правильно и unittest.main(), кажется, называется, проверено с print).

Должен ли я спать, я пропустил что-то очень простое?

ответ

0

Я должен был спать.

команды мне нужно было бежать, были:

cd auto_testing 
python3 -m unittest tests/my_module.py 

Это также работает мои тесты.