Python 无效!Unittest具有装饰程序时不运行
编辑:正如我在下面回答的那样,这个问题是无效的,因为这完全是我的误解。 我已经尝试过自定义错误的decorator,我想在我的单元测试中应用这个decorator。但是,当完成此操作时,在修饰的单元测试范围内有一个Python 无效!Unittest具有装饰程序时不运行,python,python-2.7,python-decorators,python-unittest,Python,Python 2.7,Python Decorators,Python Unittest,编辑:正如我在下面回答的那样,这个问题是无效的,因为这完全是我的误解。 我已经尝试过自定义错误的decorator,我想在我的单元测试中应用这个decorator。但是,当完成此操作时,在修饰的单元测试范围内有一个raisesomeerror语句(如果某些测试要求未得到满足,则从测试用例调用的函数将抛出一个SomeError),并且此错误类在我的decorator中被捕获,则永远不会执行测试。但是,如果我删除testcase中的任何raiseSomeError语句,它就会正常运行 我的装饰师:
raisesomeerror
语句(如果某些测试要求未得到满足,则从测试用例调用的函数将抛出一个SomeError
),并且此错误类在我的decorator中被捕获,则永远不会执行测试。但是,如果我删除testcase中的任何raiseSomeError
语句,它就会正常运行
我的装饰师:
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
我有点尴尬,但我必须承认,从来没有我在问题中描述过的问题。刚刚意识到,由于我的日志设置不好,在某些情况下,输出部分转到了我的日志文件(facepalm)。由于函数签名中的一个参数发生了变化,而我没有在函数体中处理该参数,因此unittest在应该被断言为失败时从未被断言为失败。骗我相信我的装潢师出了问题。你到底想用这个做什么?当测试抛出
键错误时,您希望发生什么?你想重写你自己吗?刚才添加了KeyError是为了解决我问题中描述的行为问题。我将测试源(测试用例函数)与PythonUnitTest和Hocust负载测试模块结合使用。decorator允许我将try-except语句从每个测试用例移动到一个decorator中。对不起,我仍然不明白。除了在测试用例中,为什么要使用try?同一代码抛出异常或不抛出异常是否正确?也许你需要举一个更具体的例子?assertRaises()
如何不为您提供所需的功能?蝗虫负载测试模块有自己的设置测试用例失败的方法(还必须说,我不是蝗虫专家,所以到目前为止,我已经想出了这个解决方案)。因此,如果我想在蝗虫运行期间设置失败状态并终止执行,我会抛出自定义错误。还应该说,执行总是作为单元测试(使用unittest模块)或者作为蝗虫测试。如果没有蝗虫模块的参与,我将永远不会有这种方法与装饰和tr除了..丹Getz,谢谢你的投入,但正如你在我的回答中看到的,问题是一个误解从我这边。