Python 有没有办法退出pytest测试并继续下一个测试?

Python 有没有办法退出pytest测试并继续下一个测试?,python,python-2.7,pytest,Python,Python 2.7,Pytest,假设我定义了两个测试。是否有一种方法可以退出第一个测试(例如,如果某个条件为True),而不执行测试的其余代码并继续进行下一个测试?(类似于循环中的continue语句,但不是循环,而是继续到下一个测试)您总是可以根据某个条件从测试中返回,这将使它在不执行任何后续代码的情况下退出 如果这是您的意思,您可以有选择地在pytest中运行测试以进行调试- py.test mytestfile.py -k <pattern> py.test mytestfile.py-k 否则,问题是人

假设我定义了两个测试。是否有一种方法可以退出第一个测试(例如,如果某个条件为True),而不执行测试的其余代码并继续进行下一个测试?(类似于循环中的continue语句,但不是循环,而是继续到下一个测试)

您总是可以根据某个条件从测试中
返回
,这将使它在不执行任何后续代码的情况下退出

如果这是您的意思,您可以有选择地在
pytest
中运行测试以进行调试-

py.test mytestfile.py -k <pattern>
py.test mytestfile.py-k

否则,问题是人们真的不喜欢花太多时间修复测试。因此,测试需要非常简单,编写得比他们正在测试的代码还要好,因为没有人会编写测试来测试测试。即使这种随机行为是可能的,我也不推荐它。

对于pytest,有很多跳过功能,请查看

但是,如果您以类似的方式使用unittest,则可以在运行测试之前使用装饰程序手动跳过它,例如:

@unittest.skip("Skipping test_myFunction test"):
def test_myFunction(self):
    assert(testing_definition)
或者只放置一个可以在内部映射到函数或unittest的条件。Testcase构造函数:

# @unittest.skip("Skipping test_myFunction test"):
def test_myFunction(self):
    condition = self.condition  # or however you define
    if condition:
        assert(testing_definition)
    else:
        print("Internal skip of test_myFunction where condition = {}".format(condition)"

return
语句执行此任务。