2016-05-04 11 views
1

basierend ich meinen Code, um dieses: How to execute code only on test failures with python unittest2?eine API auf Testfehler Rufen Sie mit aussagekräftigen Nachricht

Doch statt eines Screenshot möchte ich eine API aufrufen, die gleiche Sache wie die Assertion zu sagen, wenn ein Test nicht bestehen. Ich kann den Stacktrace als eine Nachricht verwenden, die (wenn möglich) in Ordnung ist. Ich versuchte mit Traceback-Modul, aber der Stacktrace war leer.

@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 

wenn ich die args, erhalte ich: Wahr ist nicht falsch, für assertFalse. Was nicht hilfreich ist.

Antwort

0

Das primäre Problem ist, dass Sie in einer sinnvollen Fehlermeldung passieren sollen:

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

Das ist, was ich gebraucht! – Lorac

Verwandte Themen