loves小鱼儿 2018-05-22 02:37 采纳率: 0%
浏览 11357
已结题

python的assert断言不通过,后面的程序都无法继续执行了,请问有解决方案吗?求助大神!

是这样的,写了多个断言,检验新增记录的查看界面,个属性值是否正确,现在其中一个断言检查出错误,后面的代码就都不会执行了。
要求:每个断言都执行,断言不通过时,截图,测试用例不能pass,全部断言通过,不用截图,测试用例pass
放代码:

        self.assertEqual(gfxxsz_page.ele_gfxx_check_buyerCode, "2018051101", msg="校验1未通过")
        self.assertEqual(gfxxsz_page.ele_gfxx_check_buyerName, "2018051101自动化测试客户11", msg="校验2未通过")
        self.assertEqual(gfxxsz_page.ele_gfxx_check_buyerShortName, "自动化测试客户1", msg="校验3未通过")
        self.assertEqual(gfxxsz_page.ele_gfxx_check_taxNum, "123456789012345", msg="校验4未通过")
        self.assertEqual(gfxxsz_page.ele_gfxx_check_address, "合肥市高新区", msg="校验5未通过")
        self.assertEqual(gfxxsz_page.ele_gfxx_check_bank, "农业银行783247982347", msg="校验6未通过")
        self.assertEqual(gfxxsz_page.ele_gfxx_check_phone, "18226926810", msg="校验7未通过")
        self.assertEqual(gfxxsz_page.ele_gfxx_check_email, "1838256559@qq.com", msg="校验8未通过")
        self.assertEqual(gfxxsz_page.ele_gfxx_check_notes, "测试备注信息", msg="校验9未通过")
        self.assertEqual(gfxxsz_page.ele_gfxx_check_states, "无效1", msg="校验12未通过")
 # 断言通不通过都截图,执行每个断言,其中一个不通过,剩下的也能继续执行,且用例能pass
 def _assertFailedScreen(f):
     def wrapper(self,*args,**kwargs):
         try:
             f(*args,**kwargs)
        except Exception as e:
             nowTime = time.strftime("%Y%m%d%H%M%S")
            print(kwargs)
             file = kwargs['msg'] + nowTime + '.jpg'
             file_path = settings.ASSERT_SCREENSHOT_PATH
             # 判断文件夹是否存在
             if not os.path.exists(file_path):
                os.mkdir(file_path)
             file = os.path.join(file_path, file)
           self.driver.get_screenshot_as_file(file)
     return wrapper
## 断言不通过时截图,通过时不截图,但是其中一个断言不通过,后面的断言就无法继续执行了
 def _assertFailedScreen(function):
    def wrapper(self,*args,**kwargs):
        try:
            result = function(self,*args, **kwargs)
        except Exception as msg:
            nowTime = time.strftime("%Y%m%d%H%M%S")
            print(kwargs)
            file = kwargs['msg'] + nowTime + '.jpg'
            file_path = settings.ASSERT_SCREENSHOT_PATH
            # 判断文件夹是否存在
            if not os.path.exists(file_path):
                os.mkdir(file_path)
            file = os.path.join(file_path, file)
            self.driver.get_screenshot_as_file(file)
            # 加上下面这句,断言不通过时,测试用例也不能通过
            raise msg
        else:
            print("ok")
    return wrapper
 class MyTest(unittest.TestCase):

    # 重写断言方法
    @_assertFailedScreen
    def assertEqual(self, first, second, msg=None):
        super().assertEqual(first, second, msg=msg)

求助啊!!!

  • 写回答

4条回答 默认 最新

  • a718089112 2018-05-22 02:45
    关注

    增加try catch啊 在catch中自己写代码记录测试用例不通过。try catch后会记录测试用例通过的。参考:https://www.zhihu.com/question/21282451

    评论

报告相同问题?

悬赏问题

  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛