我们如何才能仅跳过特定条件,而在测试函数中执行剩余测试?

时间:2019-04-05 20:36:56

标签: pytest skip

我想跳过pytest中针对特定条件的测试,但想针对test函数中的所有其他条件执行它。 例如,我的测试正在验证多个条件,但是我想跳过其中一个条件。 如果我使用的是pytest.skip,那么它也会跳过所有其他测试。我不想跳过整个测试,而是要跳过测试中的特定条件。

例如在下面的代码中,我想跳过参数是否再见的情况,但是我想在所有其他条件(如“ hello”和“ hi”)中进行断言,以及其他断言。 说断言x,y和z

parameter = ['hello','bye',hi] 

#i don't want to parameterize it as i am using very long list and 
using it in multiple test in different packages

def test function():
#my test have multiple asserts
  assert x is true ,'x is not true'
  assert y is false, 'y is not false'
  for i in parameter: 
     assert is_present_in_json_file(i)
  assert z is true, z is not true'

1 个答案:

答案 0 :(得分:0)

您可以检查条件,如果符合则跳过测试

def test function():
    assert x is true ,'x is not true'
    assert y is false, 'y is not false'
    for i in parameter: 
        if i == 'bye':
            print(f"Skipping this parameter - {i} for reason")
            continue
        assert is_present_in_json_file(i)
        assert z is true, z is not true'