pytest官網(wǎng):https://docs.pytest.org/en/stable/usage.html#cmdline
一燕刻、pytest 收集測試用例規(guī)則
1、收集測試用例的目錄規(guī)則:
- 1埃跷、如果沒有指定路徑模塊參數(shù)攀甚,默認從當前目錄下收集用例
- 2沛硅、如果配置了
testpath
呕臂,即在配置目錄中進行收集測試用例 - 3朗儒、默認會遞歸所有目錄拾稳,除非匹配
norecursedirs
配置的目錄
2吮炕、模塊收集規(guī)則:
默認在目錄下收集所有test_*.py
和*_test.py
的模塊
3、類和函數(shù)的收集規(guī)則
- 1访得、默認以 test 作為前綴的類外面的函數(shù)
- 2龙亲、以 Test 為前綴且不包含
__init__
方法的的類里面的以test作為前綴的函數(shù)和方法
二、pytest執(zhí)行方法
- pytest命令 pytest [options] [file_or_dir] [file_or_dir] [...]
- python 代碼
pytest.main(['-s', '-v']) 參數(shù)是一個字符串列表
- 執(zhí)行用例的順序
- 在模塊級別采用模塊名的ascii碼順序悍抑,在模塊內部根據(jù)從上往下的定義順序來執(zhí)行鳄炉。
-s,-v表示的意義
三、腳手架 fixture 前置后置 夾具
-
經(jīng)典的xunit風格
- 函數(shù)級(定義在模塊中)
- setup_function
- teardown_function- 方法級(類中) - self.setup_method - self.teardown_method - 類級 - 類方法 - setup_class(cls) - teardown_class(cls) - 模塊級別 - setup_module - teardown_module
unittest
- 方法級
self.setUp 前置
self.tearDown后置
- 類級
setUpClass
tearDownClass@pytest.fixture
-定義
- 通過裝飾器@pytest.fixture可以定義夾具
- 使用
- 1. @pytest.mark.usefixtures(夾具的函數(shù)名字符串)
- 2. 在測試函數(shù)中以夾具函數(shù)名作為參數(shù)
- 使用這個夾具
- 接受這個夾具返回值
- 3. 通過yield語句實現(xiàn)后置
- 作用范圍 @pytest.fixture(scope='function')
function 默認范圍搜骡,函數(shù)范圍迎膜,在測試完成后結束
class 在類中最后一個測試完成后結束
module 在模塊中最后一個測試完成后結束
package 在包中的最后一個測試完成后結束
session 在一次會話中的最有一個測試完成后結束(整個項目)
- 自動執(zhí)行 @pytest.fixture(autouse=True)