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 是非常方便的