Ответ 1
Вам нужно добавить этот каталог в путь:
import sys
sys.path.append('../src')
Возможно, поместите это в модуль, если вы его много используете.
Мои исходные файлы находятся под src, и мои тестовые файлы находятся в тестах. Когда я хочу запустить тестовый файл, скажем, python myTest.py, я получаю ошибку импорта: "Нет модуля с именем ASourceModule.py".
Как мне импортировать все модули из источника, необходимого для запуска моих тестов?
Вам нужно добавить этот каталог в путь:
import sys
sys.path.append('../src')
Возможно, поместите это в модуль, если вы его много используете.
Если вы не хотите добавлять исходный путь к каждому тестовому файлу или изменять свой PYTHONPATH
, вы можете использовать nose для запуска тестов.
Предположим, что ваша структура каталогов выглядит так:
project
package
__init__.py
module.py
tests
__init__.py
test_module.py
Вы должны импортировать модуль обычно в test_module.py
(например, from package import module
). Затем запустите тесты, запустив nosetests
в папке проекта. Вы также можете запустить определенные тесты, выполнив nosetests tests/test_module.py
.
__init__.py
в каталоге tests
необходим, если вы хотите запустить тесты изнутри.
Вы можете легко установить нос с помощью easy_install
или pip
:
easy_install nose
или
pip install nose
нос расширяет unittest в гораздо большем количестве способов, чтобы узнать больше об этом, вы можете проверить их сайт: https://nose.readthedocs.org/en/latest/
В моей системе (Windows 10) мне нужно было сделать что-то вроде этого:
import sys
import os
sys.path.append(os.path.dirname(os.path.realpath(__file__)) + "/../src")
Добавление относительного каталога непосредственно к sys.path
не работает
Лучшее (наиболее управляемое) решение, похоже, использует virtualenv и setuptools/distribute для установки andebelopment-копии вашего пакета (src). Таким образом, ваши тесты выполняются с полностью "установленной" системой.