Import-Fehler läuft unittest in Python3

Ich habe ein Problem beim Importieren von Dateien in Python 3.6. Meine Verzeichnisse Baum ist wie unten angegeben:

project/ app/ ├── __init__.py ├── a.py └── b.py test/ ├── __init__.py ├── test_a.py └── test_b.py 

Es funktioniert meine Anwendung (aber keine Werke die Tests) mit folgenden Import-Anweisung in b.py :

 from a import * 

Aber es funktioniert nicht meine Anwendung (aber funktioniert die Tests) mit diesem anderen in b.py :

 from .a import * 

Also, ich wähle from a import * . Ausführen von Test wie python3 -m unittest Ich bekomme immer folgende Fehler:

 E. ====================================================================== ERROR: tests.test_cell (unittest.loader._FailedTest) ---------------------------------------------------------------------- ImportError: Failed to import test module: tests.test_cell Traceback (most recent call last): File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/loader.py", line 428, in _find_test_path module = self._get_module_from_name(name) File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/loader.py", line 369, in _get_module_from_name __import__(name) File "/Users/serrodcal/Repositories/project/tests/test_b.py", line 2, in <module> from app.b import * File "/Users/serrodcal/Repositories/project/app/b.py", line 1, in <module> from a import * ModuleNotFoundError: No module named 'a' ---------------------------------------------------------------------- Ran 2 tests in 0.001s FAILED (errors=1) 

In diesem Fall ist meine Import-Anweisung in test_b.py wie unten angegeben:

 from unittest import TestCase from app.cell import * 

Gibt es irgendeine Möglichkeit, dieses Problem zu beheben?

One Solution collect form web for “Import-Fehler läuft unittest in Python3”

Ich war mit Importen in Python verwechselt und wie python mit Modulen arbeitet.

 project/ module/ __init__.py a.py b.py test/ test_a.py test_b.py main.py 

Dies ist meine neue Verzeichnisse Baum. Die Dateien der Dateien sind:

In main.py :

 from module.b import Something 

In b.py :

 import .a import Something 

In a.py :

 from unittest import TestCase from module.a import Something 

In test_b.py :

 from unittest import TestCase from module.a import Something from module.b import Something 

So funktioniert es gut, Anwendung und Tests.

  • Unterschied zwischen setUpClass und setUp in Python unittest
  • Wie teste ich Python 3.4 Asyncio Code?
  • Wie verspotze ich eine Methode, die Requests.get in meiner Klasse verwendet?
  • Ist das ein richtiger Weg, um Stdout mit Python 3 Unertest zu testen?
  • Wie kann ich alle Python-Unit-Tests in einem Verzeichnis ausführen?
  • Python Mocking eine Funktion aus einem importierten Modul
  • Persist Variable Änderungen zwischen Tests in unittest?
  • Zeigen Sie python unittest Ergebnisse in schöner, tabellarischer Form
  • Wie hörst du alle Tests von innen ein Test oder setUp mit unittest?
  • Initialisierung von MEDIA_ROOT vor jedem Django Test
  • Django-Test-Runner scheitert in virtualenv auf Ubuntu
  • Python ist die beste Programmiersprache der Welt.