vlambda博客
学习文章列表

一个完整的Python项目的构成

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

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

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

如下目录所示

|-(根目录)

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

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

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

|--python_sample #为代码所在package

|--tests # 测试代码目录


其他文件介绍

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

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

项目开发

pip install -r requirements.txt

pip install -r test-requirements.txt

一个完整的Python项目的构成



安装项目

python setup.py install

一个完整的Python项目的构成



运行代码

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

一个完整的Python项目的构成

运行测试代码

cd tests && pytest

一个完整的Python项目的构成

查看测试覆盖率


pytest --cov=python_sample tests


一个完整的Python项目的构成

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


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

一个完整的Python项目的构成

代码分析

程序demo.py

  • 定义了一个add函数,执行两个参数的加法

  • 定义了一个main函数,接受参数变量

  • 结尾定义了程序的入口把参数传递给main函数

一个完整的Python项目的构成

运行python_sample模块中的demo程序

测试代码解析

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

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

后记

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

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