我正在使用主要使用unittest編寫的代碼庫。測試用pytest運行。我試圖通過參數化一些簡化測試。爲了實現這個目標,我試圖學習如何使用pytest fixture並重構一些現有的基於單元測試的測試。目前的測試必須以conftest.py全球夾具:Chain multiple fixture pytest/unittest hybrid
@pytest.fixture(autouse=True)
def register_cleanup():
yield True
print("cleaning up database")
現在我想添加一個夾具,專用於我的測試模塊之一,沿東西的
@pytest.fixture()
def foo_fixture():
print("setup fixture")
yield
print("tear down fixture")
class Foo(unittest.TestCase):
def setUp(self):
print('unittest setUp()')
def test(self):
print('test')
行然而,該模塊夾具中的print()
語句從不執行。作爲一箇中間步驟,我保持基於單元測試的結構並添加它。是否有可能以我想要的方式得到這個工作,或者我需要完全取消單元測試並直接進入pytest。
哪裏會想到使用這種燈具?你還想在這裏打開'autouse = True'嗎?一般來說,只有在它們是測試參數時才執行fixtures,而不是範圍假設的通用清理機制 – Cireo
@Cireo您是否應該將'autouse = True'添加到'foo_fixture()'類似於'register_cleanup ()'? –
@Cireo隨意發佈這個答案。 –