Я настраиваю код для unittesting. Мой каталог в настоящее время выглядит следующим образом:Использование кода в init.py при запуске python из командной строки
project/
src/
__init__.py
sources.py
test/
__init__.py
sources_test.py
В __init__.py для каталога тест, у меня есть эти две линии:
import sys
sys.path.insert(0, '../')
В тестовых файлах, у меня есть строка import src.sources
.
Когда я использую nose для запуска этих тестов из каталога проекта, все работает отлично. Если я пытаюсь запустить тесты по отдельности дает мне эту ошибку:
ImportError: No module named src.sources
я предполагаю, что это происходит потому, что, когда я запустить тест из командной строки он не использует __init__.py. Есть ли способ, которым я могу убедиться, что он будет использовать эти строки, даже когда я пытаюсь выполнить тесты индивидуально?
Я мог взять строки из __init__.py и поместить их в свои тестовые файлы, но я стараюсь избегать этого.
Для выполнения тестов по отдельности я бегу python sources_test.py
Как вы проводите тесты «индивидуально»? Какой файл вы используете для этого? – BrenBarn
Я не использую файл. У файлов есть основные методы в них –
Вы работаете в Python 2.x, или 3.x? В 2.x вы в принципе не можете делать то, что хотите делать так, как хотите. Но есть некоторые очевидные обходные пути: например, просто не попадайте в каталог 'test'. – abarnert