Wie man pytest E ModuleNotFoundError: No module named ... behebt

Problem

Beim Ausführen von pytest in deinem Projekt siehst du die folgende Fehlermeldung:

pytest_import_error.txt
________ ERROR collecting test/test_Algorithms.py ________
ImportError while importing test module '/home/uli/dev/MyModule/test/test_Algorithms.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.10/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
test/test_Algorithms.py:3: in <module>
    from MyModule.Algorithms import Algorithms
E   ModuleNotFoundError: No module named 'MyModule'

Lösung

Erstelle innerhalb deines tests-Verzeichnisses __init__.py:

create_tests_init.sh
touch tests/__init__.py

Im unwahrscheinlichen Fall, dass das nicht hilft, musst du möglicherweise die Projekt-Wurzel zu deinem PYTHONPATH hinzufügen:

run_pytest_with_pythonpath.sh
PYTHONPATH=. pytests

Ähnliche Beiträge nach Kategorie: Python Unit-Tests