有没有办法退出 pytest 测试并继续下一个测试?
Is there a way to exit a pytest test and continue to the next one?
假设我定义了 2 个测试。有没有办法在不执行其余测试代码的情况下退出第一个测试(例如,如果条件为真)并继续进行以下测试? (类似于循环中的 continue 语句,但不是循环,而是继续下一个测试)
您总是可以 return
根据某些条件从您的测试中退出,而不执行任何后续代码。
您可以在 pytest
中有选择地 运行 测试以进行调试,如果这就是您的意思 -
py.test mytestfile.py -k <pattern>
否则,人们真的不喜欢花太多时间修复测试。因此,测试需要非常简单且编写得比他们正在测试的代码还要好,因为没有人会编写测试来测试测试。即使这种随机行为是可能的,我也不会推荐它。
对于pytest,有很多跳过功能,查看pytest skip docs
但是,如果您正在使用单元测试,以类似的方式,您可以在 运行 测试之前使用装饰器手动跳过它,例如:
@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)"
假设我定义了 2 个测试。有没有办法在不执行其余测试代码的情况下退出第一个测试(例如,如果条件为真)并继续进行以下测试? (类似于循环中的 continue 语句,但不是循环,而是继续下一个测试)
您总是可以 return
根据某些条件从您的测试中退出,而不执行任何后续代码。
您可以在 pytest
中有选择地 运行 测试以进行调试,如果这就是您的意思 -
py.test mytestfile.py -k <pattern>
否则,人们真的不喜欢花太多时间修复测试。因此,测试需要非常简单且编写得比他们正在测试的代码还要好,因为没有人会编写测试来测试测试。即使这种随机行为是可能的,我也不会推荐它。
对于pytest,有很多跳过功能,查看pytest skip docs
但是,如果您正在使用单元测试,以类似的方式,您可以在 运行 测试之前使用装饰器手动跳过它,例如:
@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)"