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次重试,测试用例中不能直接将异常接受了,不然无法触发重跑的机制

posted @ 2024-01-31 11:31  sriver_dl  Views(71)  Comments(0Edit  收藏  举报