Ich habe eine Django-Anwendung, die ich kürzlich auf Django 1.8.4 aktualisiert habe. Ich verwende nose 1.3.7 und django-nose 1.4.1 für meinen Test Runner, um über 200 Integrations- und Unit-Tests zu absolvieren. Da ich sowohl Django als auch die Nase hochgerüstet habe, finde ich, dass 12 meiner Tests mit demselben Fehler fehlschlagen:
%Vor%Interessant ist, dass das Modul form_tests.py nicht einmal auf TestAddress verweist, was tatsächlich eine Klasse in meinem "Profil" -Modell ist:
%Vor%Wenn meine Tests eine Instanz der TestAddress-Klasse generieren müssen, verwende ich eine factory_boy (v. 2.5.2) -Fabrik:
%Vor%Ich habe Haltepunkte im Modul nose loader.py gesetzt und bestätigt, dass loader "TestAddress" in "profile.models" sieht. Es gibt jedoch eine Variable "parent .__ name__", die auf "account.tests.model_tests" gesetzt ist. Ich habe ein paar Fragen:
%Vor%Ich setze "--verbosity = 2" aber das zeigt die Namen fehlgeschlagener Tests nicht an. Ich schaute durch die Nase und sah nichts. Im schlimmsten Fall kann ich ein Skript schreiben, um jeden Test einzeln aufzurufen und den Testnamen vor dem Ausführen zu wiederholen, aber das scheint sehr hässlich und zeitraubend.
Danke.
Ich stieß auf dasselbe Problem, als ich mein Django-Projekt von 1.6 auf 1.8 portierte und django-nose auf 1.4.3 aktualisierte.
Es scheint, dass django-nose versucht, alle Klassen, beginnend mit DiscoverRunner
, als Testfälle zu verwenden, was dazu führt, dass sie in die Django-App von django-nose übernommen werden, bevor sie angetroffen werden in Testmodulen.
Ich habe es geschafft, dieses Problem zu lösen, indem ich sie umbenenne, um dieses Benennungsschema zu vermeiden, zB Test*
.
Ich bin gerade auf dieses Problem gestoßen und habe es mit dem @nottest Decorator gelöst.
Technisch ist es für Funktionen entsprechend den Dokumenten, aber das Dekorieren mit Klassen funktioniert auch:
%Vor% Alles, was der Dekorator tut, ist __test__
mit dem Wert True
zu dem Objekt hinzuzufügen, das er dekoriert.
Tags und Links django nose django-models