Python基础-测试和打包
Python基础-测试和打包
主要介绍测试和打包相关内容与命令
测试相关
文档
- 查看文档命令 python -m pydoc 模块名
- 生成html文档 python -m pydoc -w 模块名
- 启动服务查看文档 python -m pydoc -p 端口号
1 | """ |
使用上面的命令可以看到上面的例子的文档
文档测试
1 |
|
在注释中按照上面的格式书写 然后运行doctest.testmod() 会自动测试注释中的代码
单元测试 PyUnit
1 | """ |
上面是待测试模块,下面用PyUnit进行测试
1 | """ |
测试包和前后执行
1 | def say_hello(): |
上面是测试类
1 | import unittest |
上面的类标注是表示类前后执行,只执行一次,而测试用例setUp和tearDown会在每个测试用例前后执行
1 | """ |
上面是测试包的用法,把几个测试用例组织一起,可以生产报告到文件
打包相关
zipapp进行打包
同一个目录建立文件hello.py 和 app.py,其中app.py引入hello.py的函数
1 | def say_hello(name): |
1 | from hello import * |
返回上一级目录 python -m zipapp 包含app的目录名 -o first.pyz -m “app:main” ,然后就看到first.pyz
生产了 然后用python first.pyz 运行
如果有第三方包怎么弄呢,下面演示下
新建dbapp目录
进入dbapp目录 新建文件exec_select.py 和__main__.py,内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18import mysql.connector
def query_user():
conn = mysql.connector.connect(user='root', password='root',
host='localhost', port='3306',
database='python', use_unicode=True)
c = conn.cursor()
c.execute('select * from user_tb')
for row in c:
print(row)
c.close()
conn.close()1
2
3
4
5
6
7
8
9
10
11
12
13from exec_select import *
query_user()
'''
1. 安装依赖模块 到上级目录 python -m pip install -r requirement.txt --target 当前文件所在目录
requirement.txt 为需要安装的模块名
2.如果安装包有.dist-info 目录建议删除
3.python -m zipapp xxx 由于有__main__.py文件 不用-m
'''返回上级目录新建requirements.txt 里面加入依赖模块名mysql-connector-python
- 执行安装命令 python -m pip install -r requirements.txt –target dbapp
- 打包 python -m zipapp dbapp
PyInstaller 打包
需要先安装 pip install pyinstaller
将上面的app.py改成可执行的文件
1 | from hello import * |
当前目录执行pyinstaller -F app.py 就能生成exe文件了 ,而pyinstaller -D app.py生成带目录的执行文件