Mit Tests in mehreren Dateien

Ich bin mit Pyramiden Rahmen für große Projekt und ich finde es unordentlich, alle meine Tests in einer tests.py Datei haben. Also habe ich mich entschlossen, ein Verzeichnis zu erstellen, das Dateien mit meinen Tests enthalten würde. Problem ist, ich habe keine Ahnung, wie man Pyramiden erzählt, um meine Tests aus diesem Verzeichnis auszuführen.

Ich python setup.py test -q die Tests mit python setup.py test -q .

Aber das geht natürlich nicht, nachdem ich meine Tests in das Testverzeichnis verschoben habe. Was zu tun, um es zu machen?

3 Solutions collect form web for “Mit Tests in mehreren Dateien”

Zuerst müssen Sie sicherstellen, dass tests nicht nur ein Verzeichnis ist, sondern ein Python-Paket, indem Sie ein __init__.py darin __init__.py .

Sie müssen auch sicherstellen, dass Sie die Module in Ihrem test_something.py .

Die meisten Test-Läufer, als Teil ihrer Test-Entdeckung, suchen Sie nach einem Modul oder Paket namens tests , Module in diesem Paket beginnend mit test_ und erwarten Methodennamen für Testmethoden (auf TestCase Unterklassen), um mit test_ zu beginnen.

Das unbescheidene Modul beschreibt Testläufer als:

Ein Test-Läufer ist eine Komponente, die die Durchführung von Tests orchestriert und das Ergebnis für den Benutzer liefert. Der Läufer kann eine grafische Oberfläche, eine Textschnittstelle verwenden oder einen Sonderwert zurückgeben, um die Ergebnisse der Ausführung der Tests anzuzeigen.

Es gibt viele verschiedene Test-Frameworks und damit Test-Läufer da draußen, die meisten ausgedehnten unittest in irgendeiner Weise und auf der Suche nach unittest.TestCase Unterklassen. Sie können verschiedene Arten von Test-Entdeckung , präsentieren die Ergebnisse in einer anderen Weise oder sammeln Code-Abdeckung, während die Tests ausgeführt werden.

Wie für relative Importe: Sie sollten wirklich versuchen, diese zu vermeiden. Sie machen es schwieriger, Code umzuziehen (wie Sie gerade bemerkt haben) und verringern die Lesbarkeit der Importe (woher kommt welcher Code importiert?). Verwenden from myproject.views import my_view einfach from myproject.views import my_view – es ist viel klarer, wo die Dinge leben

Ich habe endlich den Weg gefunden, es zu tun. Ich habe gerade Verzeichnis namens Tests erstellt, legte meine Tests in sie und erstellt leere Datei __init__.py . Ich musste relative Importe reparieren, oder es macht seltsame Fehler wie:

AttributeError: 'module' object has no attribute 'tests'

Ich verstehe nicht wirklich, was los ist, und was ist die nosetest Rolle hier, aber es funktioniert.

Wenn jemand in der Lage ist, diese Problematik tiefer zu erklären, wäre es schön.

Versuche nose benutzen
http://nose.readthedocs.org/de/latest/
Wenn alle deine Testdateien mit "Test" beginnen, sollten nosetests sie alle abholen und ausführen.

Python ist die beste Programmiersprache der Welt.