/ / Installierte App in Django nicht gefunden, wenn Tests ausgeführt werden - Python, Django, Testen, Modul

Installierte App in Django nicht gefunden, wenn Tests ausgeführt werden - Python, Django, Testen, Modul

Ich habe eine ziemlich einfache Django-App, mit der ich Unit-Tests durchführen möchte. In meiner Datei tests.py versuche ich, die übergeordnete Anwendungsansichtsdatei zu importieren. Ich habe "from. Import views" ausprobiert, aber eine Fehlermeldung erhalten:

SystemError: Parent module "" not loaded, cannot perform relative import

Ich habe gelesen, dass, wenn ein relativer Pfad nicht funktioniert, Sie versuchen können, einen absoluten Pfad zu verwenden. Daher habe ich versucht, "aus Menü-Importansichten" zu importieren, aber dann einen anderen Fehler erhalten:

ImportError: No module named "menu"

Wenn ich einen lokalen Server für die Anwendung laufen lassefunktioniert gut Es ist nur, wenn ich "Coverage run" ausführe. Coverage run menu / tests.py Da es gut läuft und sich das Modul in den installierten Apps meiner Einstellung befindet, bin ich nicht ganz sicher, warum dies geschieht.

menu / tests.py

import unittest

from menu import views

class ModelTestCase(unittest.TestCase):
def setUp(self):
pass

def test_menu(self):
pass

if __name__ == "__main__":
unittest.main()

settings.py

INSTALLED_APPS = (
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"menu",
"django_nose"
)

Zurück verfolgen

timothybaney$ coverage run menu/tests.py
Traceback (most recent call last):
File "menu/tests.py", line 3, in <module>
from menu import views
ImportError: No module named "menu"

Antworten:

2 für die Antwort № 1

Es sind nicht viele Informationen, die Sie uns gegeben haben File "menu/tests.py". Befindet sich die Datei views.py ebenfalls im Menüordner, können Sie einfach Folgendes schreiben:

import views

Wenn sich die Datei views.py im Hauptordner befindet, können Sie Folgendes schreiben:

from ..main import views   #replace "main" with your folder name