python 命令行执行单元测试unittest
unittest 单元测试是开发中的重要环节, python 也比较方便
环境搭建
对于有自定义包package的项目, 需要指定包路径, 有两种方式
- 使用sys.path, 但这种需要每个次运行其它文件的时候要执行一次
sys.path本身是多个地址的列表。
sys.path.append():添加一个地址
sys.path += [directory's list] :添加多个地址(或者也可以用sys.path.extend())
sys.path.remove() 去掉地址
例如
# 在项目执行入口文件顶部
import sys
sys.path.append('/path/to/a:/path/to/b')
-
设置条件变量 PYTHONPATH
将package的路径添加到PYTHONPATH -
至于怎么自定义包,这涉及python的namespace, 不展开
https://www.python.org/dev/peps/pep-0420/
执行测试
python -m unittest MODULE/CLASS/FUNCTION
因为unittest的文件都是以test_开头,所以module 是去掉test_部分的名称
如果不知道哪个用例,可以 -v 查找
python -m unittest -v
性能测试
有时候,我们不仅通过单元测试保证代码的准确性, 而且还可以通过 cProfile 来定位 perf penalty , 即定位到性能损失的地方
使用cPerf 可以检查性能
python -m cPerf
不仅如此,还可以通过比如kcachegrind 这样的大型工具来统计perf
总结
可见 python 是非常方便的