pyunit测试失败时如何自动重新运行
在stackflow上看到一个帖子:
http://stackoverflow.com/questions/8295100/how-to-re-run-failed-junit-tests-immediately
是采用selenium大量UI测试运行时,因为DOM刷新等原因,一些测试不是很稳定,一次失败不是真的失败,需要设定多次失败后才算真的失败,stackoverflow上给出了junit的例子,但是没有pyunit的,我想实现方法应该是差不多的,试着写了一个:
class RetryTestCase(unittest.TestCase):
def __init__(self, methodName='runTest'):
self.retry_count = 2
self._result = result.TestResult()
super(RetryTestCase, self).__init__(methodName)
def run(self, _result=None):
super(RetryTestCase, self).run(_result)
while self.retry_count > 0 and (_result.failures<>[] or _result.errors<>[]):
self.retry_count = self.retry_count - 1
super(RetryTestCase, self).run(_result)
if _result.failures or _result.errors:
_result.testsRun = 1
if _result.failures:
del _result.failures[1:]
if _result.errors:
del _result.errors[1:]
这样写测试的时候,直接结成RetryTestCase就可以了。 但是这样的代码很hack,对于Failture及Err处理也简单化了,不知有没有更好的办法。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论