2010-03-01 45 views
4

我正在为特定类中的方法列表运行assertEqual测试用例。这些方法从字符串形式扩展到使用getattr()可调用的东西。如何在Python单元测试中获取失败案例的参数?

如何获得unittest来告诉我失败的特定方法?意思是:我怎样才能得到unittest来打印stdout导致assert失败的特定参数?

任何建议非常感谢。

感谢

回答

5

您可以通过assertEqual便第三个参数(如果算上自技术上第四),这是错误消息将返回。所以下面应该做或多或少你要找的东西:

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

宾果!谢谢jcd。 – chris 2010-03-02 17:40:36