2016-04-06 57 views
3

假設我有一個文件fixtures.py,它定義了一個簡單的py.test夾具,稱爲foobar如何在不導入它們的情況下使用py.test夾具

通常情況下,我將不得不導入夾具使用(包括所有的子燈具),像這樣:

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查看燈具來自哪裏。

相關問題