python – 为什么运行“setup.py test”运行我的控制台脚本?
发布时间:2020-12-16 22:28:29 所属栏目:Python 来源:网络整理
导读:我非常简单的示例项目包含: addtest/ setup.py addtest/ __init__.py __main__.py app.py 我的app.py只是: def main(): raise SystemExit("Command line entry point called.") 我的__main__.py只是: from addtest.app import mainmain() 我的setup.py包
我非常简单的示例项目包含:
我的app.py只是:
我的__main__.py只是:
我的setup.py包含:
我希望运行python setup.py测试不会做任何事情,因为没有编写单元测试.但是,在一个干净的virtualenv(Ubuntu 18.04.1上的Python 3.6.6)中运行它给了我:
请注意调用的命令行入口点.这意味着它正在调用它从我的__main__.py生成的控制台脚本(或者可能只是调用python -m addtest). 为什么setup.py在我希望它运行测试时调用控制台脚本?进一步检查脚本的执行情况表明sys.argv是[‘setup.py’,’test’] – 为什么? 最佳答案
setuptools中的测试扫描程序将在子目录中找到的任何* .py文件中查找测试,但__init__.py除外.是的,这包括__main__.py,它将在其上调用__import __(),导致其主套件被执行.
如果你想能够运行python -m addtest并运行你的__main__.py代码,你可能想要添加标准’仅当这是真正的主要’保护:
(然后,如果你执行python -m代码将运行,但如果文件是通过setup.py test加载的,它将无法运行) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读