一个小而全的Python项目示例

举报
雷学委 发表于 2022/02/07 22:47:48 2022/02/07
【摘要】 ​ 之前分享过几篇Python的开发小作品,没有过多提到项目组织。 本文展示一个常见的python项目结构。 Python的好处是代码很容易理解,而且语言层面简洁。 但是就是因为太简洁了,导致各种项目结构不一,本文演示一下学委常用的项目组织方式。 如下目录所示 |-(根目录) |--requirements.txt  # 项目依赖库 |--test_requirements.tx

之前分享过几篇Python的开发小作品,没有过多提到项目组织。

本文展示一个常见的python项目结构。

Python的好处是代码很容易理解,而且语言层面简洁。

但是就是因为太简洁了,导致各种项目结构不一,本文演示一下学委常用的项目组织方式。

如下目录所示


|-(根目录)

|--requirements.txt  # 项目依赖库

|--test_requirements.txt # 测试依赖库

|--setup.py # 项目配置脚本

|--python_sample #为代码所在package

|--tests # 测试代码目录


其他文件介绍

.gitignore #git类代码仓库必备,用来忽略某些特定文件的checkin

pyvenv.cfg & bin & lib # 由virtualenv 创建的

.coverage && htmlcov # 由pytest coverage 创建的

项目开发

pip install -r requirements.txt

pip install -r test-requirements.txt


安装项目

python setup.py install


运行代码

python -m python_sample.demo #运行示例模块内的demo程序的main函数


运行测试代码

cd tests && pytest

查看测试覆盖率

pytest --cov=python_sample tests

pytest --cov=python_sample --cov-report=html

测试报告生成在htmlcov目录内。


代码分析

程序demo.py

  • 定义了一个add函数,执行两个参数的加法
  • 定义了一个main函数,接受参数变量
  • 结尾定义了程序的入口把参数传递给main函数

运行python_sample模块中的demo程序

测试代码解析

本文使用pytest的assert函数,它比unittest更加易用。

本文的一个简单使用: assert 目标函数调用 比较符 结果,也就是下面的: assert add(1,1) == 2

后记

写代码不写测试就是流氓,或者不想让别人使用。

这样生成测试报告别人看到覆盖率高,使用起来也更加放心。

对了,学委还有这个可以关注长期阅读 =>雷学委趣味编程故事汇编 

或者=> 雷学委NodeJS爱好系列

持续学习持续开发,我是雷学委! 编程很有趣,关键是把技术搞透彻讲明白。 创作不易,请多多支持,点赞收藏支持学委吧!


【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200