#python #visual-studio-code #pip #pytest
#python #visual-studio-code #pip #pytest
Вопрос:
Запуск тестов для моего кода проекта, установленного pip
в режиме разработчика ( pip install -e .
), выполняется путем выполнения pytest
из командной строки. Однако выполнение одних и тех же тестов в том же Python virtualenv
с использованием пользовательского интерфейса Test Explorer Visual Studio Code не работает, Python вызывает ModuleNotFoundError
s.
Я подтвердил, что мой пакет установлен pip list -v
, который печатает:
myproject 0.0.0 /path/to/myproject
Кроме того, я написал неудачный тест, чтобы получить путь Python во время выполнения теста:
import sys
def test_some_test():
print(sys.executable)
print(sys.path)
assert False
Это подтверждает, что исполняемый файл Python является тем, из virtualenv
которого установлен мой код проекта. Но sys.path
разница между запуском Test Explorer и запуском командной строки. Запуск Test Explorer не включает /path/to/myproject
в sys.path
себя, в то время как запуск командной строки включает. Очевидно, что если путь к проекту включен в sys.path
, пакет может быть импортирован. Почему он отсутствует при запуске пользовательского интерфейса Test Explorer? Как заставить Test Explorer использовать пакеты, установленные в режиме разработки pip
?
Я должен добавить, что модули, которые я пытаюсь импортировать в своих тестах, сами находятся в пакете, который называется mylib
. Итак, фактический импорт в моем тесте выглядит так
from mylib import function_under_test
def test_function_under_test():
...
Ответ №1:
Обновить
Теперь эта проблема исправлена. Это просто работает.
Старый ответ
Повозившись с проблемой больше, я обнаружил, что это ошибка в расширении Python для vscode, см. выпуски 14579 и 14570 на github.com .
В качестве обходного пути можно либо установить расширение пользовательского интерфейса Little Fox Team Test Explorer, либо старую версию расширения Microsoft Python (v2020.9.114305).