unittest:测试时增加模块的详细程度

Jak*_* M. 2 python unit-testing

我有一个mymodule我测试的模块unittest.当处于详细模式(例如mymodule.set_verbose(True))时,模块将记录到stdout诊断消息,否则保持静默.我希望当我在主程序中导入模块时,它处于静默模式,当unittest运行时,它是详细的.

我试图在unittest主循环中破解它,但它不起作用

if __name__ == "__main__":
  mymodule.set_verbose( True )
  unittest.main() 
# apparently, modules are loaded on each test separately
Run Code Online (Sandbox Code Playgroud)

如何在python单元测试中增加冗长度?没有帮助.

Rob*_*ert 7

if __name__ == '__main__':
    unittest.main(verbosity=2)
Run Code Online (Sandbox Code Playgroud)

请参阅:https://docs.python.org/2/library/unittest.html


use*_*_00 5

或者,您可以直接使用unittest.TextTestRunner来运行您的测试。这允许设置详细级别:

suite = unittest.TestLoader().loadTestsFromTestCase(TestCaseClass)
unittest.TextTestRunner(verbosity=2).run(suite)
Run Code Online (Sandbox Code Playgroud)

这将从中运行您的所有测试TestCaseClass


Gil*_*ilZ 3

set_verbose您可以从setUp单元测试的方法中调用。