python 命令行执行单元测试unittest

unittest 单元测试是开发中的重要环节, python 也比较方便

环境搭建

对于有自定义包package的项目, 需要指定包路径, 有两种方式

  1. 使用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')


2. 设置条件变量 PYTHONPATH
将package的路径添加到PYTHONPATH

3. 至于怎么自定义包,这涉及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 是非常方便的
原文地址:https://www.cnblogs.com/hustcpp/p/12431074.html