无效!单元测试在有装饰器时不运行

时间:2015-06-17 15:05:50

标签: python python-2.7 python-decorators python-unittest

编辑:正如我在下面回答的那样,这个问题无效,因为这对我来说只是一个误解。

我为自定义错误做了一个try-except装饰器,我想在我的单元测试中应用这个装饰器。但是,当完成此操作并且在装饰单元测试范围内存在raise SomeError语句时(如果某些测试要求未得到满足,则从测试用例调用的函数将抛出SomeError) ,这个错误类在我的装饰器中捕获,然后测试永远不会执行。但是,如果我删除测试用例中的任何raise SomeError语句,它运行正常。

我的装饰者:

def try_exceptor(f):
    @functools.wraps(f)
    def inner(self):
        try:
            return f(self)
        except KeyError as k:
            print k
        except MyLocustFailError as mlfe:
            print mlfe.message
            newer_assert(mlfe.load_test, mlfe.response, mlfe.message)
    return inner

1 个答案:

答案 0 :(得分:1)

我有点尴尬但我必须承认我的问题中没有出现任何问题。刚刚意识到由于我的日志设置不好,输出部分转到了我的日志文件(facepalm),用于某些场景。并且由于函数签名中的参数已更改(我在函数体中没有处理),因此单元测试从未被声明为失败。愚弄我相信我的装饰师有问题。