Ich habe Probleme beim Importieren von Dateien in meine Testdateien, die ich mit py.test ausführen möchte.Importieren von Modulen aus einem Geschwisterverzeichnis zur Verwendung mit py.test
Ich habe eine Struktur Projekt wie folge:
/ProjectName
|
|-- /Title
| |-- file1.py
| |-- file2.py
| |-- file3.py
| |-- __init__.py
|
|-- /test
| |-- test_file1.py
Ich habe nicht in der Lage gewesen, alle Import-Anweisungen mit pytest innerhalb der test_file1.py
Datei arbeiten zu bekommen, und so ist derzeit nur eine Variable in file_1.py
erklärt versucht, zu verwenden, und drucken Sie es aus, wenn test_file1.py
ausgeführt wird.
file1.py enthält:
file1_variable = "Hello"
test_file1.py enthält:
import sys
import os
sys.path.append(os.path.abspath('../Title'))
import file1
def test_something():
assert file1.file1_variable == "Hello"
print(file1.file1_variable)
Die Import-Anweisung aus meiner Testdatei aus https://stackoverflow.com/a/10272919/5477580 genommen wird, die durch die Bearbeitung der PYTHONPATH Variable funktioniert. Dies ermöglicht es mir, das test_file1.py
-Skript auszuführen und die print
-Anweisung erfolgreich auszuführen.
jedoch versucht py.test
vom /ProjectName
Verzeichnis zu laufen gibt mir eine Fehlermeldung, ImportError: No module named 'file1'
Gibt es irgendeine Art und Weise, in der ich bessere Dinge strukturieren kann, so dass pytest möglich sein wird? Muss ich etwas zu meiner __init__.py
Datei hinzufügen?
zu tun haben, die funktioniert, ich danke Ihnen sehr. Ich glaube, ich habe nur die Struktur von hierarchischen Importanweisungen falsch interpretiert. Es scheint jedoch, dass mein Pytest erneut Fehler verursacht, wenn in Datei1.py Importanweisungen vorhanden sind. Angenommen, file1.py importiert eine Funktion aus file2.py. Wenn pytest ausgeführt wird, wird dann angegeben, dass kein Modul namens file2.py vorhanden ist. Muss ich diese in der Testdatei explizit deklarieren? – Shinkawa91