摘要1:
摘要2:
摘要3:
摘要4(pytest外掛程式):
pytest是乙個非常成熟的全功能的python測試框架,主要特點有以下幾點:
與安裝其他的python軟體無異,直接使用pip安裝。
pip install -u pytest
安裝完成後,可以驗證安裝的版本:
pytest --version
1)pytest
會查詢當前目錄及其子目錄下以 test_*.py 或 *_test.py 檔案,找到檔案後,在檔案中找到以 test 開頭函式並執行
1)pytest somepath
會查詢somepath目錄下以 test_*.py 或 *_test.py 檔案,找到檔案後,在檔案中找到以 test 開頭函式並執行
2)pytest **.py
執行該檔案中test開頭的函式並執行
3)pytest **.py::test_func
執行指定測試檔案下的測試函式
3)pytest **.py::classname::test_functionname
執行某個檔案下某個類的某個方法
1)perferences ---->tools -----> python integrated tools ---->default test runner設定為pytest 。之後直接執行測試用例即可
2)if __name__ =="__main__":
command_line = ["-s","./test_creative_create_card_pic_nobase.py","--alluredir=../result"]
pytest.main(command_line)
1、-k expression
執行某個關鍵字的用例
用例要匹配給出的表示式;使用python的語法,匹配的範圍是檔名、類名、函式名為變數,用and來區分
如下面一段測試用例(檔案實現方式)
# content of test.py
def test_two():
x = "hello"
assert hasattr(x, 'check')
def test_a():
assert 1 == 2
執行pytest時帶-k引數
# 執行當前檔名稱中包含test_a字元的測試用例
pytest -k "test_a" test.py
# 執行當前檔名稱中不包含test_a字元的測試用例
pytest -k "not test_a" test.py
# 執行當前檔名稱中包含 test_a 字元或 test_two 字元的測試用例
pytest -k "test_a or test_two" test.py
如下面一段測試用例(類實現方式)
# content of test.py
class testclass(object):
def test_zne(self):
x = "this"
assert 'h' in x
def test_two(self):
x = "hello"
assert hasattr(x, 'check')
def test_a(self):
assert 1==2
執行pytest時帶-k引數
# 測試類名包含 testclass,並且該測試類中包含 test_a 將被跳過
pytest -k "test and testclass and not test_a" test.py
或者pytest -k "testclass and not test_a" test.py
# 測試類或函式包含 test_a 或 test_two 中的測試將被執行
pytest -k "test_a or test_two"
如下面一段測試用例(類實現方式)
2、-x
遇到執行失敗的用例或錯誤,停止測試
3、--maxfail=num
當錯誤個數到達給定個數,退出測試,這裡就不列舉例項了,結果與-x類似
4、-m markexpr
只能執行有相應標識的測試用例,使用這個引數,測試用例要使用@pytest.mark.marker修飾
如下例項
# content of test.py
class testclass(object):
def test_zne(self):
x = "this"
assert 'h' in x
@pytest.mark.b
def test_two(self):
x = "hello"
assert hasattr(x, 'check')
@pytest.mark.a
def test_a(self):
assert 1 == 2
teste_two使用了@pytest.mark.b來修飾,teste_a使用了@pytest.mark.a來修飾。
# 只執行a標識的用例
pytest –m a test.py
# 如果要執行多個標識的話,用表示式,如下
注意,-m後面不能帶''號(單引號),只能帶""(雙引號),不然識別不到
pytest -m "a or b" # 執行有 a 標識或 b 標識用例
pytest -m "a and not b" # 執行有 a 和沒有 b 標識的用例
5、 -v, --verbose
詳細結果
6、-q, --quiet
極簡結果顯示,簡化控制台的輸出,可以看出輸出資訊和之前不新增-q不資訊不一樣, 下圖中有兩個..點代替了pass結果
7、-s
輸入我們用例中的調式資訊,比如print的列印資訊等,我們在用例中加上一句 print(driver.title),我們再執行一下我們的用例看看,除錯資訊輸出
8、-v
可以輸出用例更加詳細的執行資訊,比如用例所在的檔案及用例名稱等
9、--junit-xml=path
輸出xml檔案格式,在與jenkins做整合時使用
10、 --result-log=path
將最後的結果儲存到本地檔案中
python pytest單元測試框架之介紹
前言 pytest是python的一種單元測試框架,與python自帶的unittest測試框架類似,但是比unittest框架使用起來更簡潔,效率更高。pytest是乙個成熟的全功能的python測試工具,可以幫助你寫出更好的程式,讓我們很方便的編寫測試用例。適合從簡單的單元到複雜的功能測試。有很...
unittest單元測框架
django預設使用python的標準庫unittest編寫測試用例。學習django單元測試之前,先學習下unittest單元測試框架的基本使用。下面實現乙個簡單的單元測試1.簡單的加法和減法功能實現,module.py 如下 encoding utf 8 class calculator doc...
單元測試應該測什麼
單元測試應該全面覆蓋專案開發的 但是依賴的第三方 不應該被測試。凡是非本專案開發的 都可以認為是第三方 比如,我們專案依賴別的部門提供的儲存服務,連線此服務需要使用他們提供的乙個指令碼,而這個指令碼存放在我們的util目錄中。像這個指令碼,就是所謂的第三方 我用下面這段話來說服領導將這個指令碼從測試...