所以,我有以下結構:pytest運行場景
class Test(object):
def test_1(self):
pass
def test_2(self):
pass
def test_3(self):
pass
它運行太好了,現在我加入了「情景」(因爲它的建議在pytest - A quick port of 「testscenarios」):
def pytest_generate_tests(metafunc):
idlist = []
argvalues = []
for scenario in metafunc.cls.scenarios:
idlist.append(scenario[0])
items = scenario[1].items()
argnames = [x[0] for x in items]
argvalues.append(([x[1] for x in items]))
metafunc.parametrize(argnames, argvalues, ids=idlist)
class Test(object):
scenarios = ['1' {'arg':'value1'},
'2' {'arg':'value2'}]
def test_1(self, arg):
pass
def test_2(self, arg):
pass
def test_3(self, arg):
pass
當我運行它ORDER的測試是錯誤,我得到:
test_1[1]
test_1[2]
test_2[1]
test_2[2]
test_3[1]
test_3[2]
看起來不像Test類的場景。
問題:是否有任何解決方案以正確的順序運行它?如:
test_1[1]
test_2[1]
test_3[1]
test_1[2]
test_2[2]
test_3[2]
我認爲亞歷克斯不是指分佈式測試在這裏,否則我大多同意。 – hpk42
@Bakuriu感謝您的回答,但是的確我指的是同一過程中的測試順序。關於順序依賴關係 - 在我看來,它是非常有爭議的:測試類應該是獨立的,但是測試方法是我的測試步驟。我使用pytest不是用於單元測試,而是用Selenium webdriver進行UI自動化。 –
最新的py.test似乎不支持-n,任何想法? – Schollii