2010-03-01 11 views
4

Je cours un cas de test assertEqual pour une liste de méthodes dans une classe particulière. Ces méthodes sont étendues de la forme de chaîne à quelque chose d'appelable en utilisant getattr().Comment obtenir les paramètres d'un cas d'échec dans Python unittest?

Comment puis-je obtenir unittest pour me dire la méthode particulière qui a échoué? Signification: comment puis-je obtenir unittest à imprimer sur stdout les paramètres particuliers qui ont causé l'échec de l'affirmation?

Tout conseil grandement apprécié.

Merci

Répondre

5

Vous pouvez passer assertEqual un troisième argument (techniquement quatrième si l'on compte l'auto), qui est le message d'erreur, il retourne. Donc, ce qui suit devrait faire plus ou moins ce que vous cherchez:

class MethodTest(TestCase): 
    def test_method(self): 
     obj = MyClass() 
     for method in "frob", "defrob", "refrob": 
      self.assertEqual(getattr(obj, method)(), 42, "obj.%s() is not equal to 42" % method) 
+0

bingo! Merci jcd. – chris

Questions connexes