如何在Python unittest中获取失败案例的参数?

chr*_*ris 4 python unit-testing

我正在assertEqual为特定类中的方法列表运行测试用例.这些方法从字符串形式扩展到可调用的东西getattr().

如何通过unittest告诉我失败的特定方法?含义:如何让unittest打印到stdout导致断言失败的特定参数?

任何建议都非常感谢.

谢谢

jcd*_*yer 5

你可以传递assertEqual第三个参数(如果算上self,技术上是第四个),这是它将返回的错误信息.所以以下内容应该或多或少地做你想要的:

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)
Run Code Online (Sandbox Code Playgroud)