1. 程式人生 > 其它 >pytes--配置檔案pytest.ini

pytes--配置檔案pytest.ini

前言

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"])