首页 > 解决方案 > 我们如何决定使用 unittest.main()、测试套件还是实例化对象和运行方法?

问题描述

您好,我有几种运行单元测试的方法。

  1. 使用 unittest.main() :
if __name__ == '__main__':
    unittest.main()
  1. 套房:
def suite():
    suite = unittest.TestSuite()
    suite.addTest(WidgetTestCase('test_default_widget_size'))
    suite.addTest(WidgetTestCase('test_widget_resize'))
    return suite

if __name__ == '__main__':
    runner = unittest.TextTestRunner()
    runner.run(suite())
  1. 对象实例化:
if __name__ == '__main__':
    Obj = WidgetTestCase()
    Obj.methodname() # this can either be one of test methods or a method that invokes multiple test methods.

为什么我们有很多方法可以做同样的事情?如何决定使用哪种方法?

标签: python

解决方案


这是粒度和易用性的问题。

main() 是最简单和流行的形式。你只需运行你的模块,它就会为你发现所有的测试,你不必什么都不做。

其他方法使您可以更好地控制要测试的内容。


推荐阅读