已知被測對象demo.py
#!/usr/bin/python # -*- coding: utf-8 -*- def add(a, b): return a+b def minus(a, b): return a-b
1.測試函數案例 test_demo_module.py

- 文件必須要
test_*.py
和*_test.py
來命名 - 測試case命名必須要
test
開頭,最好是test_
- 判斷使用
assert
- setup_module,
所有case
執行的前置條件,只運行一次
- teardown_module,
所有case
執行的后置條件,只運行一次
- setup_function,
每個測試用例
的前置條件 - teardown_function,
每個測試用例
的后置條件
2.測試類案例
test_demo_class.py
- 文件必須要
test_*.py
和*_test.py
來命名 - 測試類命名必須要
Test
開頭 - 測試case命名必須要
test
開頭,最好是test_
- 判斷使用
assert
- setup_class,
所有case
執行的前置條件,只運行一次
- teardown_class,
所有case
執行的后置條件,只運行一次
- setup,
每個測試用例
的前置條件 - teardown,
每個測試用例
的后置條件
3. pytest執行命令:
- pytest: 查找當前目錄及子目錄下所有
test_*.py
和*_test.py
的測試文件,然后一一執行文件內以test開頭的函數
。 - pytest ut/: 查找ut目錄及子目錄下所有
test_*.py
和*_test.py
的測試文件,然后一一執行文件內以test開頭的函數
。 - pytest test_demo_class.py: 可以指定
測試文件
- pytest test_demo_module.py::test_add: 執行指定測試文件中的測試case
- pytest test_demo_class.py::TestDemo[::test_add]: 執行指定測試文件中的測試類[中的測試case]
- pytest -k EXPRESSION: 執行和
表達式匹配
的測試案例
4. 常用參數
-s : 打印測試案例中print信息
-q : 只顯示結果[. F E S]
, 不展示過程
-x : 遇到失敗案例
,停止測試
--maxfail=num: 失敗num個
案例后,停止測試