为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

紫衣仙女 2022-07-05 15:56:25
有没有办法在python中做这样的事情?$ python tests/tests.py verbose# in the fileif __name__ == '__main__':   unittest.main()基本上我希望能够从命令行解析无关的 sys args,但是当我尝试时,我得到类似的东西:AttributeError:模块“主”没有属性“详细”
查看完整描述

2 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

只需--verbose从命令行传入,如下所示:

python tests/tests.py --verbose

当 unittest 框架被调用时,unittest.main()仍然会理解与调用框架时相同的命令行参数,如此python -m unittest所述。要启用详细程度,选项是标志(前面有两个连字符)--verbose。没有理由对您的代码进行任何更改。以下是您所需要的:

if __name__ == '__main__':
   unittest.main()

当然,如果您想支持框架提供的选项以外的选项,那么您需要自己处理这些选项。


查看完整回答
反对 回复 2022-07-05
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

一种方法是在将 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()


查看完整回答
反对 回复 2022-07-05
  • 2 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号