cra*_*gds 11 python unit-testing selenium-webdriver
我在python的unittest2框架中运行了一些基于类的单元测试.我们正在使用Selenium WebDriver,它有一个方便的save_screenshot()方法.我想抢到拆解()的截图为每个测试失败,以减少花在调试的时间,为什么一个测试失败.
但是,我找不到任何方法只在测试失败时运行代码.tearDown()无论测试是否成功,都会调用,我不想让我们的文件系统混乱,有数百个浏览器屏幕截图用于成功的测试.
你会怎么做?
找到了解决方案 - 我可以覆盖failureException:
@property
def failureException(self):
class MyFailureException(AssertionError):
def __init__(self_, *args, **kwargs):
self.b.save_screenshot('%s.png' % self.id())
return super(MyFailureException, self_).__init__(*args, **kwargs)
MyFailureException.__name__ = AssertionError.__name__
return MyFailureException
Run Code Online (Sandbox Code Playgroud)
这似乎令人难以置信的hacky但它似乎工作到目前为止.