[Python-de] exclude pattern für unittests ???

Stefan Schwarzer sschwarzer at sschwarzer.net
Mi Jan 2 16:41:26 EST 2019


On 02/01/2019 21.05, robert wrote:
> Ich habe ein Problem mit unittests.
> 
> In meinem tests/.. -Verzeichnis hat es ein Modul, das von den Tests 
> gebraucht wir, aber keine Tests entält.
> 
> Es kann nicht fehlerfrei importiert werden, ohne dass vorher der 
> Pythonpath angepasst wird.
> 
> Nun scheint Python beim test-discovery zu versuchen, dieses Modul zu laden.
> 
> Jedenfalls gibt es eine entsprechende Fehlermeldung:
> 
> ERROR: config (unittest.loader._FailedTest)
> ----------------------------------------------------------------------
> ImportError: Failed to import test module: config
> Traceback (most recent call last):
>    File "/usr/lib/python3.6/unittest/loader.py", line 462, in _find_test_path
>      package = self._get_module_from_name(name)
>    File "/usr/lib/python3.6/unittest/loader.py", line 369, in _get_module_from_name
>      __import__(name)
>    File "/home/robert/erp-workbench/tests/config/__init__.py", line 5, in <module>
>      from scripts.bcolors import bcolors
> ModuleNotFoundError: No module named 'scripts'
> 
> Wie kann ich das Laden dieses Moduls unterdrücken?

Wäre es nicht einfacher, den PYTHONPATH anzupassen (zum
Beispiel über die entsprechende Umgebungsvariable oder
eine `__init__.py` im übergeordneten Verzeichnis) als
das Importieren des Moduls zu unterdrücken? Eventuell
kannst du auch die Datei
`/home/robert/erp-workbench/tests/config/__init__.py` so
anpassen, dass `sys.path` richtig gesetzt ist, wenn
`scripts` wie oben importiert wird.

Oder habe ich die Frage falsch verstanden?

Gibt es noch zusätzliche Rahmenbedingungen, die wir kennen
sollten?

Viele Grüße
Stefan




Mehr Informationen über die Mailingliste python-de