AttributeError: 'TestCaseFunction' object has no attribute 'failures'

来源:6-2 自动化测试开发之用例依赖装饰器的实现方法

慕无忌2229432

2022-06-30

老师,请帮忙看一下,提示没有failures属性图片描述from functools import wraps
import unittest

class DependencyError(Exception):
def __init__(self, _type=0):
    self._type = _type

def __str__(self):
    if self._type == 0:
        return f'Dependency name pf test is required!'
    if self._type == 1:
        return f'Dependency name of test can not the case self!'


def depend(case=''):
    if not case:
        raise DependencyError
    _mark = []

   def wrap_func(func):
    @wraps(func)
    def inner_func(self):
        if case == func.__name__:
            raise DependencyError(1)
        _r = self._outcome.result
        _f, _e, _s = _r.failures, _r.errors, _r.skipped  # 用例的失败,错误,跳过
        if not (_f or _e or _s):
            func(self)
        if _f:
            _mark.extend([fail[0] for fail in _f])
        if _e:
            _mark.extend([error[0] for error in _e])
        if _s:
            _mark.extend([skip[0] for skip in _e])

        unittest.skipIf(
            case in str(_mark),
            f'The pre_depend case: {case} has failed! Skip the specified case!'
        )(func)(self)

    return inner_func

return wrap_func
写回答

1回答

慕无忌2229432

提问者

2022-07-05

修改pycharm的运行方式,改为unittest运行

0
0

Python自动化测试开发实战,能帮你就业的测试课

开发高扩展、高可用的自动化测试框架,利用好测试自动化技术。

445 学习 · 157 问题

查看课程