@pytest.mark.incremental
class Test_aws():
def test_case1(self):
----- some code here ----
result = someMethodTogetResult
assert result[0] == True
orderID = result[1]
def test_case2(self):
result = someMethodTogetResult # can be only perform once test case 1 run successfully.
assert result == True
def test_deleteOrder_R53HostZonePrivate(self):
result = someMethodTogetResult
assert result[0] == True
当前的行为是如果测试1通过,则测试2运行,如果测试2通过,则测试3运行。在
我需要的是: 如果测试用例1通过,则应运行测试用例3。测试用例2不应该改变任何行为。有什么想法吗?在
为了补充hoefling's answer,另一个选择是使用pytest-steps来执行增量测试。如果您希望在步骤之间共享某种增量状态/中间结果,这尤其有助于您。在
但是,它不实现高级依赖机制,如
pytest-dependency
,因此请使用更适合您目标的包。在使用pytest步骤,hoefling的示例将写下:
编辑:有一个新的“发电机”模式,使它更容易:
^{pr2}$有关详细信息,请查看documentation。(顺便说一下,我是这个包的作者;)
您可以使用pytest-ordering包来使用pytest标记对测试进行排序。包的作者解释了here的用法
示例:
我猜您正在寻找^{} ,它允许在测试之间设置有条件的运行依赖关系。示例:
只有在}才会运行,否则将跳过。但是,由于
test_instance_start
成功时,test_instance_stop
和{test_instance_delete
不依赖于test_instance_stop
,无论后一个测试的结果如何,前者都将执行。多次运行示例测试类以验证所需的行为。在相关问题 更多 >
编程相关推荐