将命令行参数传递给 python 单元测试

有没有办法在python中做这样的事情?


$ python tests/tests.py verbose


# in the file

if __name__ == '__main__':

   unittest.main()

基本上我希望能够从命令行解析无关的 sys args,但是当我尝试时,我得到类似的东西:


AttributeError:模块“主”没有属性“详细”


紫衣仙女
浏览 130回答 2
2回答

拉风的咖菲猫

只需--verbose从命令行传入,如下所示:python tests/tests.py --verbose当 unittest 框架被调用时,unittest.main()仍然会理解与调用框架时相同的命令行参数,如此python -m unittest处所述。要启用详细程度,选项是标志(前面有两个连字符)--verbose。没有理由对您的代码进行任何更改。以下是您所需要的:if __name__ == '__main__':    unittest.main()当然,如果您想支持框架提供的选项以外的选项,那么您需要自己处理这些选项。

牛魔王的故事

一种方法是在将 sys args 传递给unittest.main(). 例如:if __name__ == '__main__':    if 'verbose' in sys.argv:        sys.argv = sys.argv[:-1]      else:        logging.disable(1e6) # suppress logging    unittest.main()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python