2
我想使用PyTest,我無法獲得如何設置燈具。我試過下面的代碼:pytest夾具不起作用 - 爲什麼?
import pytest
import random
@pytest.fixture()
def setup():
a = random.randint(0,10)
def test(setup):
assert 3 > a
if __name__ == '__main__':
pytest.main()
而且我越來越"NameError: name 'a' is not defined".
而且例如,從官方文檔不起作用。怎麼了?我需要功能類似於setUp/tearDown。但我不想使用單元測試。有人能給我提供一個工作夾具的例子(setUp類型和tearDown類型)嗎?我想寫一些測試作爲函數和一些測試作爲類內的方法,因此我的第二個問題是使用具有類/方法的fixture的工作示例。我只需要在python中查看fixtures的工作示例。
是否與斷言簡單不同python3單元測試框架爲PyTest?
謝謝** Vasiliy **。有沒有更簡單的方法來設置/ tearDown pytest?更容易我的意思是減少打字。我嘗試在燈具中定義變量並將其返回,但它不起作用。我真的不想爲此定義額外的類。任何意見將是有益的。還有,是否有另一個單元測試框架,其斷言以pytest中的語句定義?我想盡可能少寫:)再次感謝。 – 2014-09-13 16:20:11
@ master.py如果你只需要一個變量(在這種情況下爲'a'),只需從'setup()'返回它。然後,在'test()'裏面,'setup'參數的值就是你返回的值,所以你可以寫:'assert 0 <= setup <= 10'。 – 2014-09-13 16:22:18
** Vasiliy **!有用。這很簡單。我被文檔弄糊塗了。我有兩個更多的好處要問。你能告訴我如何以類似的方式設置tearDown - 我讀過文檔,我不知道:(以及如何爲所有測試設置默認的setUp和tearDown,而不需要明確地加入像'def test(setup)':' – 2014-09-13 16:31:04