2016-04-06 7 views
3

Angenommen, ich habe eine Datei fixtures.py, die eine einfache py.test Fixture namens foobar definiert.Wie py.test Fixtures zu verwenden, ohne sie zu importieren

Normalerweise würde ich das Befestigungs importieren müssen, es zu benutzen (einschließlich aller Teilkörper), wie folgt aus:

from fixtures import foobar 

def test_bazinga(foobar): 

Bitte beachte, dass ich nicht will auch einen Stern Import verwenden.

Wie importiere ich diesen Scheinwerfer so, dass ich nur schreiben kann:

import fixtures 

def test_bazinga(foobar): 

Ist das überhaupt möglich? Es scheint, wie es, weil py.test sich genau solche Vorrichtungen definiert (zum Beispiel monkeypatch).

+0

Haben Sie untersucht, wie 'py.test' es tut? – jonrsharpe

+0

Setze deine Fixtures in conftest.py – Pedru

Antwort

9

Paarungen und ihre Sichtbarkeit sind ein wenig in pytest odd. Sie müssen nicht importiert werden, aber wenn Sie sie in einer test_*.py Datei definiert haben, sind sie nur in dieser Datei verfügbar.

Sie können jedoch stecken sie in einem (Projekt- oder Unterordner weit) conftest.py sie in mehreren Dateien zu verwenden.

pytest-Einbauten sind einfach in einem core plugin definiert und somit überall verfügbar. In der Tat ist ein conftest.py im Grunde nichts anderes als ein per-Verzeichnis-Plugin.

Sie können auch py.test --fixtures zu sehen, laufen, wo Armaturen herkommen.