тест волшебным образом работает / не работает

#python #pytest

Вопрос:

Открываются два разных окна терминала. Оба настроены на один и тот же реж. Вторая была создана путем создания «Новой вкладки» в то время как в первой

В первом из них:

 me $ pytest test_MakeInfo.py 
================================================================================ test session starts =================================================================================
platform darwin -- Python 3.7.4, pytest-6.2.5, py-1.10.0, pluggy-0.13.0
rootdir: /Users/me/Documents/workspace-vsc/Pipeline/src/python
plugins: arraydiff-0.3, remotedata-0.3.2, doctestplus-0.4.0, openfiles-0.4.0
collected 12 items                                                                                                                                                                   

test_MakeInfo.py ............                                                                                                                                                  [100%]

================================================================================= 12 passed in 0.87s =================================================================================
me $ which pytest
/Users/me/opt/anaconda3/bin/pytest
 

Во втором:

 me $ pytest test_MakeInfo.py 
================================================================================ test session starts =================================================================================
platform darwin -- Python 3.7.4, pytest-6.2.5, py-1.10.0, pluggy-0.13.0
rootdir: /Users/me/Documents/workspace-vsc/Pipeline/src/python
plugins: arraydiff-0.3, remotedata-0.3.2, doctestplus-0.4.0, openfiles-0.4.0
collected 0 items / 1 error                                                                                                                                                          

======================================================================================= ERRORS =======================================================================================
_________________________________________________________________________ ERROR collecting test_MakeInfo.py __________________________________________________________________________
ImportError while importing test module '/Users/me/Documents/workspace-vsc/Pipeline/src/python/test_MakeInfo.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/Users/me/opt/anaconda3/lib/python3.7/importlib/__init__.py:127: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
test_MakeInfo.py:6: in <module>
    from MakeInfo import main, makeInfo, makeTumorInfo, _getNormalTumorInfo
E   ModuleNotFoundError: No module named 'MakeInfo'
============================================================================== short test summary info ===============================================================================
ERROR test_MakeInfo.py
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
================================================================================== 1 error in 0.17s ==================================================================================
me $ which pytest
/Users/me/opt/anaconda3/bin/pytest
 

На какие переменные среды я должен обращать внимание в поисках различий? Потому что, насколько я могу судить, между ними все одинаково

Комментарии:

1. Проверьте свои PYTHONPATH переменные и PATH переменные среды.

2. @хлопья Да, он был установлен в первом кубике и не перенесен на второй, Сделайте это ответом, и я поставлю вам зеленую галочку. Спасибо!

Ответ №1:

Вы хотите проверить свои PYTHONPATH переменные и PATH переменные среды.

В зависимости от используемой оболочки они могут быть установлены по-разному при открытии новой вкладки.

Например, в bash вы можете добавить необходимый каталог в свой путь с помощью ~/.bash_profile или ~/.bashrc

Комментарии:

1. К сожалению, у меня есть несколько мест, где я разрабатываю свой код на python, с взаимоисключающими исходными деревьями, поэтому я не могу делать это на машинной основе

2. @GregDougherty Я обычно создаю виртуальную среду для каждого проекта на python, над которым работаю. И поставляйте каждый env отдельно перед тестированием.

3. Как вы это делаете? Ссылка на обсуждение? Спасибо

4. @GregDougherty Попробуй это medium.com/@dakota.lillie/…