unittest失败重跑-retry
点击查看代码
# coding:utf-8
import unittest
import time
from datatest import readdata
from ddt import ddt,data,unpack
from src.basePage.setlog import log
from src.pages.template_page import templateloc
from src.basePage.login import Login
from retry import retry # 导入retry装饰器,使得unittest框架中的测试用例可以重跑
@ddt #ddt数据驱动
class Test_template(unittest.TestCase):
@retry(Exception, delay=1, tries=2) # 在遇到 Exception 异常时延迟1s且进行最多2次重试
@data(*readdata.template_value)
@unpack
def test_template_detail(self, value):
try:
result = self.__class__.ele.template(value)
self.assertEqual(value, result)
except Exception as err:
log().error(u'无法打开'+value+'模板') #报错时的日志
self.ele.fail_img_screenshot(u'无法打开'+value+'模板') #报错时的截图
self.driver.refresh()
raise #日志与图截完后需要重新将异常抛出,不然最后所有用例都是成功的
if __name__ == "__main__":
unittest.main()
重跑的装饰器@retry(Exception, delay=1, tries=2) # 在遇到 Exception 异常时,延迟1s,进行最多2次重试,测试用例中不能直接将异常接受了,不然无法触发重跑的机制
墨者看遍天下皆是丹青,测试看尽万物皆是bug