我的代码基于此How to execute code only on test failures with python unittest2?
但是,在测试失败时,我想调用API来代替断言,而不是屏幕截图。我可以使用stacktrace作为消息,它很好(如果可能的话)。我尝试使用traceback模块但堆栈跟踪是空的。
@property
def failureException(self):
class MyFailureException(AssertionError):
def __init__(self_, *args, **kwargs):
test_id = os.path.basename(__file__).split('_')[1] # file has the id for the API
client = getClient()
client.test_failed(test_id, comment=str('Failed'))
return super(MyFailureException, self_).__init__(*args, **kwargs)
MyFailureException.__name__ = AssertionError.__name__
return MyFailureException
如果我使用 args ,我得到:对于assertFalse,True不是False。哪个没用。
答案 0 :(得分:0)
主要问题是您应该传递一条有意义的错误消息:
self.assertFalse(True) # message == 'True is not False'
self.assertFalse(True, 'We expected False for variable X, but got True')