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
后记
写代码不写测试就是流氓,或者不想让别人使用。
这样生成测试报告别人看到覆盖率高,使用起来也更加放心。