所以,我有以下结构: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