2016-04-06 11 views
3

という簡単なpy.testというフィクスチャを定義するファイルfixtures.pyがあります。私もスターのインポートを使用したくないpy.test fixturesをインポートせずに使用する方法

from fixtures import foobar 

def test_bazinga(foobar): 

注:

通常、私はこのように、(サブ備品の全てを含む)、それを使用することフィクスチャをインポートする必要があります。

import fixtures 

def test_bazinga(foobar): 

さえ可能これです:私はちょうど書くことができるように、私は、この治具をインポートするにはどうすればよい

py.test自体がそのような備品を正確に定義しているため(monkeypatchなど)、そのように見えます。

+0

あなたは 'py.test'がそれをどうやって見ましたか? – jonrsharpe

+0

あなたのフィクスチャをconftest.pyに入れてください – Pedru

答えて

9

フィクスチャとその可視性はpytestで少し奇妙です。インポートは必要ありませんが、test_*.pyファイルで定義した場合は、そのファイルでのみ使用できます。

ただし、それらを(プロジェクトまたはサブフォルダ全体に)conftest.pyに入れて複数のファイルで使用することはできます。

pytest内部の備品は、単にcore pluginで定義されているため、どこでも利用できます。実際にはconftest.pyは基本的にディレクトリごとのプラグイン以外のものではありません。

py.test --fixturesを実行して、フィクスチャがどこから来ているかを確認することもできます。

関連する問題