python-将命令行参数与pytest –pyargs一起使用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-将命令行参数与pytest –pyargs一起使用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1394字,纯文字阅读大概需要2分钟。
内容图文
我已经为使用以下结构编写的包编写了pytest单元测试:
> packagedir
> setup.py
> mypackage
> __init__.py
>功能包
> __init__.py
> functionmodule.py
>测试
> __init__.py
> conftest.py
>单元测试
> __init__.py
> functionmodule_test.py
现在,packagedir / mypackage / test / conftest.py建立了两个必需的命令行参数,这些参数将被创建为测试的固定装置.当我运行类似:
pytest packagedir/mypackage/ --var1 foo --var2 bar
运行所有测试,并正确读取命令行参数.但是,当我点安装软件包时(正确安装了test和unit_tests软件包),然后尝试执行以下操作:
pytest --pyargs mypackage --var1 foo --var2 bar
我收到这样的错误:
usage: pytest [options] [file_or_dir] [file_or_dir] [...]
pytest: error: unrecognized arguments: --var1 foo --var2 bar
如果我运行:
pytest --pyargs mypackage
测试运行但失败,因为命令行参数不存在.
有人可以向我解释这里可能出什么问题吗?我可以猜测并说这是因为–pyargs参数更改了pytest命令行参数的解释,但这只是一个猜测.我想知道是否有实际的方法可以解决此问题.
总体目标是允许某人通过点子安装mypackage,然后能够轻松对其进行测试,而无需导航到安装的站点软件包位置.
解决方法:
我将__main__.py添加到mypackage / test目录中并写道
import os
import sys
HERE = os.path.dirname(__file__)
if __name__ == "__main__":
import pytest
errcode = pytest.main([HERE] + sys.argv[1:])
sys.exit(errcode)
现在,我可以执行测试
python -m mypackage.test --myoption=works
安装软件包时,此方法有效.
您可以使用travis版本查看此操作:
> __main__.py
> Travis invocation
> Travis output
内容总结
以上是互联网集市为您收集整理的python-将命令行参数与pytest –pyargs一起使用全部内容,希望文章能够帮你解决python-将命令行参数与pytest –pyargs一起使用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。