Я пытался использовать unittest в своем последнем проекте, но у меня есть некоторые трудности с импортом.
Мне удалось импортировать сценарий, который я хочу успешно протестировать, но этот сценарий завершается ошибкой, когда дело доходит до собственного импорта.
Моя папка имеет структуру:
Project
|
+-- src
| |
| +-- __init__.py
| +-- script1.py
| +-- script2.py
|
+-- test
| |
| +-- __init__.py
| +-- test_script1.py
script1.py
содержит:
#!/usr/bin/env python3.6
# -*- encoding: utf-8 -*-
"""
This is the script I want to run tests on
"""
import networkx as nx # works just fine
from script2 import blablabla # does not work when called from unittest
и вот как выглядит мой test_script1.py
:
#!/usr/bin/env python3.6
# -*- encoding: utf-8 -*-
import unittest
import networkx as nx
import src.script1
Когда я пытаюсь запустить тесты с помощью этой команды ~/Project$ python -m unittest discover
, я получаю ModuleNotFoundError: No module named 'script2'
.
Если я изменю script1.py
на from .script2 import blablabla
, то юнит-тесты будут работать нормально, но только script1.py
(без использования юнит-теста) больше не будет, так как он не может найти script2
.
Есть идеи, как мне это решить?