ich ein sehr einfaches Beispiel für ein Python-Paket und einen Test, den ich versuche, mit pytestpytest kann nicht Paket finden, wenn ich Tests in einem separaten Verzeichnis setze
package
\--
__init__.py
spam.py
spam_test.py
__init__.py
leer zu laufen ist, spam.py
definiert eine einzelne Funktion func()
und spam_test.py
ist:
import package.spam
def test_func():
assert(package.spam.func() == 5)
im Stammverzeichnis ich betreiben py.test
und alles funktioniert, eines davon Test zurück.
ich dachte, dass ich auch die Dinge auf diese Weise strukturieren könnte:
package
\--
__init__.py
spam.py
tests
\--
spam_test.py
Aber jetzt, wenn ich py.test
in der Wurzel laufen erhalte ich:
============================= test session starts ============================= platform win32 -- Python 3.6.0, pytest-3.0.5, py-1.4.32, pluggy-0.4.0 rootdir: C:\Users\MattUser\Documents\m_drive\notebooks\testing, inifile: collected 0 items/1 errors =================================== ERRORS ==================================== _____________________ ERROR collecting tests/spam_test.py _____________________ ImportError while importing test module 'C:\Users\MattUser\Documents\m_drive\not ebooks\testing\tests\spam_test.py'. Hint: make sure your test modules/packages have valid Python names. Traceback: tests\spam_test.py:1: in import package.spam E ModuleNotFoundError: No module named 'package' !!!!!!!!!!!!!!!!!!! Interrupted: 1 errors during collection !!!!!!!!!!!!!!!!!!! =========================== 1 error in 0.19 seconds ===========================
ich verschiedene Dinge ausprobiert habe zu keinem Glück. Was mache ich falsch??
Ich hatte Probleme, einige einfache Tests arbeiten und nicht realisieren, dass sie "test_foo" genannt werden müssen und nicht 'foo_test', im Gegensatz zu den Dateinamen ... –