使用有意义的消息在测试失败时调用API

时间:2016-05-04 14:11:48

标签: python python-unittest

我的代码基于此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。哪个没用。

1 个答案:

答案 0 :(得分:0)

主要问题是您应该传递一条有意义的错误消息:

self.assertFalse(True)  # message == 'True is not False'
self.assertFalse(True, 'We expected False for variable X, but got True')