2017-10-17 3 views
0

Ich habe so etwas wie dies:Python separate Tests Paket

/proj 
├───docs 
├───generated_data 
├───sql_generator 
│ ├───blocks 
│ ├───generators 
│ ├───models 
│ ├───refs 
│ │ ├───custom 
│ │ │ └───__pycache__ 
│ │ └───tables 
│ └───utils 
└───tests 

Wie kann ich schließen die sql_generator Tests auszuführen. Ich möchte sql_generator.blocks, Modelle und so weiter einschließen.

Etwas in diese Richtung: https://github.com/joke2k/faker/tree/master/tests

Wenn ich so etwas wie Python setup.py Test ausführen, schlägt es Pakete zu importieren.

Ich habe auch alles als relativ angegeben, wenn ich ein Modul importieren. Zum Beispiel in den Blöcken, ich habe meine init alle Module zu importieren, und es kann etwas wie folgt aussehen:

from .block import Block 
from .person import PersonBlock 

Alles funktioniert gut, wenn ich das sql_generator Paket laufen, aber wenn ich versuche, Tests außerhalb des sql_generator zu laufen Paket, es wird nicht importiert werden.

Ich habe versucht:

from sql_generator import blocks 

from .. import blocks 
+0

Sehen Sie sich [tox] (https://tox.readthedocs.io/en/latest/) für die Tests an. – salparadise

+0

@salparadise Ich benutze das auch, aber es ist auch schön, einfach in der Lage zu sein, es manchmal schnell zu laufen. – Matt

Antwort

0

Es sieht aus wie Sie keine __init__.py Datei innerhalb von sql_generator haben, so ist es nicht als importierbaren Modul außerhalb des Verzeichnisses gesehen zu werden. Versuchen Sie, diese Datei in das Verzeichnis hinzuzufügen und dann sollten Sie in der Lage sein, import sql_generator und dergleichen.

+0

Ich glaube, ich habe es, aber ich muss es überprüfen. – Matt