仅在测试失败时创建屏幕截图 - python

目前,我有一个可以创建屏幕截图的函数,我在这里调用它

def tearDown(self):
    self.save_screenshot()
    self.driver.quit()

还创建了一个文件夹,用于存储屏幕截图。

我不希望这种情况在测试通过时发生。

我必须添加什么才能使这种情况不发生?

谢谢你的帮助

python大神给出的解决方案

这是仅在失败时捕获屏幕截图的一种方法:

def setUp(self):
    # Assume test will fail
    self.test_failed = True

def tearDown(self):
    if self.test_failed:
        self.save_screenshot()

def test_something(self):
    # do some tests
    # Last line of the test:
    self.test_failed = False

这种方法的基本原理是,当测试到达最后一行时,我们知道测试已通过(例如,所有self.assert *通过)。此时,我们重置test_failed成员,该成员在setUp中设置为True。在tearDown中,我们现在可以判断测试是通过还是失败,并在适当时拍摄屏幕截图。