gpt4 book ai didi

断言通过时的Python unittest调用函数

转载 作者:太空宇宙 更新时间:2023-11-03 14:28:14 25 4
gpt4 key购买 nike

当测试中的断言通过时,我找不到执行 do_something() 的方法。例如:

    def test_one(self):
self.assertEqual(1,1, "Did not match")

如果断言失败,该测试将打印“不匹配”,但在这种情况下不会,所以我试图在 self.assertEqual() 成功时调用一个函数或打印一些东西,请想法?

谢谢

最佳答案

如果你想在某些东西通过时打印,有几个选项。但是,请不要使用 Noeld's answer .并不是说它错了,只是当 unittest 提供了更好的方法时,您不想用一堆 print 消息使您的测试困惑。

冗长

如果您想打印每个test_ 函数的结果,请设置测试运行器的详细程度。您可以通过多种方式执行此操作:

  1. 在命令行中,使用 verbose选项:

    python -m unittest discover -v

  2. 以编程方式调用 unittest.main 并将其传递给 verbosityargument

    if __name__ == "__main__":
    unittest.main(verbosity=2)

“手动”运行测试

  1. 以编程方式构建您的 TestSuite 并调用带有详细参数的 TestRunner。

    suite = unittest.TestLoader().loadTestsFromModule(TestModuleName)
    results = unittest.TextTestRunner(verbosity=2).run(suite)
  2. 创建 TestResultobject 的子类,其中包含一个 addSuccess每当测试通过时将调用的方法。

    然后您可以将此 TestResult 对象传递给 Test Suite's run method .

        suite = unittest.TestLoader().loadTestsFromModule(TestModuleName)
    suite.run(myTestResult)

第三方运行器

看看Twisted's Trial .它包含许多不同的Test Runners这可能有用。默认情况下,它运行如下所示的 TreeReporter:

Trial reporting

关于断言通过时的Python unittest调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16676477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com