我有一个模块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
答案 0 :(得分:6)
if __name__ == '__main__':
unittest.main(verbosity=2)
答案 1 :(得分:4)
您可以从单元测试的set_verbose
方法中调用setUp
。
答案 2 :(得分:3)
或者,您可以直接使用unittest.TextTestRunner
来运行测试。这允许设置详细级别:
suite = unittest.TestLoader().loadTestsFromTestCase(TestCaseClass)
unittest.TextTestRunner(verbosity=2).run(suite)
这将在TestCaseClass
内运行所有测试。