pytes--配置檔案pytest.ini
阿新 • • 發佈:2021-09-14
前言
pytest配置檔案可以改變pytest的執行方式,它是一個固定的檔案pytest.ini檔案,讀取配置資訊,按指定的方式去執行。
ini配置檔案
pytest裡面有些檔案是非test檔案
pytest.ini pytest的主配置檔案,可以改變pytest的預設行為
conftest.py 測試用例的一些fixture配置
__init__.py
識別該檔案為python的package包
tox.ini 與 pytest.ini類似,用tox工具時候才有用
setup.cfg 也是ini格式檔案,影響setup.py的行為
ini檔案基本格式
#儲存為pytest.ini檔案 [pytest] addopts = -rsxX xfail_strict = true<br>
-rsxX表示pytest報告所有測試用例被跳過、預計失敗、預計失敗但實際被通過的原因。
使用pytest --help指令可以檢視pytest.ini的設定選項
mark標記
如下案例,使用2個標籤:test和add(名字可以隨便起),使用mark標記功能對於以後分類測試非常有用處;
首先當前包下,新建pytest.ini檔案,寫入以下內容(注意:若是pytest.ini中不新增mark的標籤,可以執行成功,但會報警告):
標記好之後,pytest0729的目錄下使用pytest --markers檢視(注意非當前pytest.ini目錄,執行該命令,不會顯示標記):
參考程式碼:
#test_answers.py import pytest @pytest.mark.test def test_send_http(): print("mark web test") def test_something_quick(): pass def test_another(): pass @pytest.mark.add class TestClass: def test_01(self): print("hello :") def test_02(self): print("hello world!") if __name__ == "__main__": pytest.main(["-v", "test_answers.py", "-m=add"])
cmd下執行 pytest -v -m=add
禁用xpass
設定xfail_strict=true可以讓那些標記為@pytest.mark.xfail但實際通過的測試用例被報告為失敗。
#test_answers.py import pytest def test_xixi(): print("xixi") assert 1 @pytest.mark.xfail() def test_t1(): a="hello" b="hello sky" assert a==b @pytest.mark.xfail() def test_t2(): a="hello" b="hello sky" assert a!=b if __name__=="__main__": pytest.main(["-s","test_answers.py"])