日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

pytest配置文件pytest.ini的具體使用_python

作者:Bug?挖掘機 ? 更新時間: 2022-09-07 編程語言

前言

說到配置,大家可能想到的是不經常更改的內容,比如Django里的settings.py文件,或者我們做自動化的時候,把測試環境的域名和正式環境的域名放到一個配置文件里,所有的接口都從這個文件里讀取。這樣,如果有一天,我們的域名變了,我們只需要更改配置里的域名就可以了。pytest里也有幾個配置文件。

pytest.ini:pytest的主配置文件,可以改變pytest的默認行為,有很多可配置的選項。
conftest.py:是本地的插件庫,其中的hook函數和fixture將作用于該文件所在的目錄以及所有子目錄。
init.py:每個測試子目錄都包含該文件時,那么在多個測試目錄中可以出現同名測試文件。
tox.ini:它與pytest.ini類似,只不過是tox的配置文件,你可以把pytest的配置都寫在tox.ini里,這樣就不用同時使用tox.ini和pytest.ini兩個文件

本文只談pytest.ini的使用

pytest.ini的內容構成

先看一個簡單的示例,這個只展示了配置文件中的三個配置項,更多配置項可以查看https://www.jb51.net/article/255567.htm

在這里插入圖片描述

配置項markers

先談markers,它的作用是做注冊標記,防止拼寫錯誤。比如把@pytest.mark.smoke拼成@pytest.mark.somke,默認情況下。這不會引起程序錯誤。pytest會以為這是你創建的另一個標記。為了避免拼寫錯誤。可以在pytest.ini文件里注冊標記

[pytest]
markers =
    smoke: Run the smoke test functions for tasks project
    get: Run the test functions that test tasks.get()
import pytest


def inc(x):
    return x + 1

@pytest.mark.smoke
def test_answer():
    assert inc(3) == 55

@pytest.mark.post
def test_answer1():
    assert inc(4) == 5

標記注冊好后,可以通過pytest --markers來查看

在這里插入圖片描述

如果我們在執行時,故意寫錯mark標簽,如把smoke故意寫錯了,也沒有報錯,只是給我們一個警告,只需要我們在ini里注冊下就不會有警告了

在這里插入圖片描述

如果使用了–strict選項,遇到拼寫錯誤的標記或未注冊的標記就會報錯。并且在pytest.ini里注冊了標記,但是沒有函數使用該標記,也會報錯。

在這里插入圖片描述

配置項testpaths

testpaths指示pytest去哪里訪問。testpaths是一系列相對于根目錄的路徑,用于限定測試用例的搜索范圍。只有在pytest未指定文件目錄參數或測試用例標識符時,該選項才有作用

[pytest]
testpaths = test_001

在這里插入圖片描述

配置項addopts

更改默認命令行選項

pytest用命令行運行時,有時候需要經常要用到某些參數,又不想重復輸入,這時可以使用pytest.ini文件里的addopts設置

[pytest]
addopts=-vqs

編寫的用例

from selenium import webdriver
 def testOpenUrl():
 try:
 driver = webdriver.Firefox() # 打開瀏覽器
 driver.get('http://www.baidu.com') # 訪問百度
 title = driver.title # 獲取百度首頁的title
 assert title == '百度一下,你就知道' # 斷言
 except AssertionError:
raise AssertionError('斷言失敗!')
 driver.quit()

-v:pytest -v 說明:可以輸出用例更加詳細的執行信息,比如用例所在的文件及用例名稱等

在這里插入圖片描述

-s:pytest -s 說明:輸入我們用例中的調式信息,比如print的打印信息等,我們在上面用例8行加上一句 print(driver.title),我們再運行一下我們的用例看看

在這里插入圖片描述

-m:pytest -m ”標記“ 說明:執行特定的測試用例。修改下上面的用例代碼

from selenium import webdriver
 import pytest
 @pytest.mark.run_this_testcase       #添加mark的標簽
 def testOpenUrl():
 try:
 driver = webdriver.Firefox() # 打開瀏覽器
 driver.get('http://www.baidu.com') # 訪問百度
 title = driver.title # 獲取百度首頁的title
print(driver.title)
assert title == '百度一下,你就知道' # 斷言
except AssertionError:
raise AssertionError('斷言失敗!')
driver.quit()
def testBaidu():
driver = webdriver.Firefox() # 打開瀏覽器
driver.get('http://www.baidu.com') # 訪問百度
title = driver.title # 獲取百度首頁的title
assert title == '百度一下,你就知道' # 斷言

在這里插入圖片描述

-q:pytest -q 說明:簡化控制臺的輸出,可以看出輸出信息和上面的結果都不一樣, 下圖中有兩個…點代替了pass結果

在這里插入圖片描述

-k:pytest -k “關鍵字” 說明:執行用例包含“關鍵字”的用例

在這里插入圖片描述

–tb=style:屏蔽測試用例執行輸出的回溯信息,可以簡化用例失敗時的輸出信息。style可以是 on,line,short,具體區別請自行體驗。如使用pytest --tb=no

在這里插入圖片描述

更多pytest參數可以參考文章
https://www.jb51.net/article/164071.htm
https://www.jb51.net/article/164074.htm

參考鏈接:

https://www.jb51.net/article/255567.htm

原文鏈接:https://blog.csdn.net/u011035397/article/details/109550202

欄目分類
最近更新