Pytest官方教程-22-API參考-Objects

目錄:

  1. 安裝及入門
  2. 使用和調(diào)用方法
  3. 原有TestSuite使用方法
  4. 斷言的編寫和報(bào)告
  5. Pytest fixtures:清晰 模塊化 易擴(kuò)展
  6. 使用Marks標(biāo)記測試用例
  7. Monkeypatching/對模塊和環(huán)境進(jìn)行Mock
  8. 使用tmp目錄和文件
  9. 捕獲stdout及stderr輸出
  10. 捕獲警告信息
  11. 模塊及測試文件中集成doctest測試
  12. skip及xfail: 處理不能成功的測試用例
  13. Fixture方法及測試用例的參數(shù)化
  14. 緩存: 使用跨執(zhí)行狀態(tài)
  15. unittest.TestCase支持
  16. 運(yùn)行Nose用例
  17. 經(jīng)典xUnit風(fēng)格的setup/teardown
  18. 安裝和使用插件
  19. 插件編寫
  20. 編寫鉤子(hook)方法
  21. 運(yùn)行日志
  22. API參考
    1. 方法(Functions)
    2. 標(biāo)記(Marks)
    3. 鉤子(Hooks)
    4. 裝置(Fixtures)
    5. 對象(Objects)
    6. 特殊變量(Special Variables)
    7. 環(huán)境變量(Environment Variables)
    8. 配置選項(xiàng)(Configuration Options)
  23. 優(yōu)質(zhì)集成實(shí)踐
  24. 片狀測試
  25. Pytest導(dǎo)入機(jī)制及sys.path/PYTHONPATH
  26. 配置選項(xiàng)
  27. 示例及自定義技巧
  28. Bash自動(dòng)補(bǔ)全設(shè)置

API參考-Objects

對象(Objects)

完全參考可從Fixturs掛鉤進(jìn)入的物體器腋。

CallInfo

*class *CallInfo[source]
結(jié)果/異常信息是一個(gè)函數(shù)調(diào)用。

Class

*class *Class[source]
基地: _pytest.python.PyCollector
收集器的測試方法衷咽。
collect()[來源]
返回此集合節(jié)點(diǎn)的子項(xiàng)(項(xiàng)和收集器)列表骂租。

Collector

*class *Collector[source]
基地: _pytest.nodes.Node
收集器實(shí)例通過collect()創(chuàng)建子項(xiàng)银择,從而迭代地構(gòu)建樹邮旷。
異常CollectError[來源]
基地: Exception
收集期間出錯(cuò)孤里,包含自定義消息伏伯。

collect()[來源]
返回此集合節(jié)點(diǎn)的子項(xiàng)(項(xiàng)和收集器)列表。

repr_failure(*excinfo *)[來源]
表示集合失敗捌袜。

配置

class Config[source]
訪問配置值说搅,pluginmanager和插件鉤子。
option
=無

訪問命令行選項(xiàng)作為屬性虏等。(已棄用)弄唧,請getoption()改用

pluginmanager=無
一個(gè)pluginmanager實(shí)例

add_cleanup(*func *)[來源]
添加一個(gè)在配置對象不使用時(shí)調(diào)用的函數(shù)(通常與pytest_unconfigure一致)。

classmethod fromdictargsoption_dict霍衫,*args *)[source]
構(gòu)造函數(shù)可用于子進(jìn)程候引。

addinivalue_line名稱[來源]
在ini-file選項(xiàng)中添加一行敦跌。該選項(xiàng)必須已聲明但可能尚未設(shè)置澄干,在這種情況下,該行將成為其值中的第一行。

getini姓名[來源]
ini文件返回配置值麸俘。如果未通過先前parser.addini 調(diào)用(通常來自插件)注冊指定的名稱 辩稽,則會(huì)引發(fā)ValueError。

从媚,skip = False *)[source]
返回命令行選項(xiàng)值搂誉。
<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 參數(shù): |

  • name - 選項(xiàng)的名稱。您也可以指定文字--OPT選項(xiàng)而不是“dest”選項(xiàng)名稱静檬。
  • default - 如果不存在該名稱的選項(xiàng)炭懊,則為默認(rèn)值。
  • skip - 如果選項(xiàng)不存在或具有None值拂檩,則為true raise pytest.skip侮腹。
    |

getvaluename,*path = None *)[來源]
(不推薦使用稻励,請使用getoption())

getvalueorskipname父阻,*path = None *)[來源]
(不推薦使用,使用getoption(skip = True))

異常信息

class ExceptionInfoexcinfo望抽,striptext =''加矛,*traceback = None *)[來源]
包裝sys.exc_info()對象并提供導(dǎo)航回溯的幫助。
*classmethod from_currentexprinfo = None *)[來源]
返回與當(dāng)前回溯匹配的ExceptionInfo
警告
實(shí)驗(yàn)API
<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 參數(shù): | exprinfo - 一個(gè)文本字符串煤篙,幫助確定我們是否應(yīng)該AssertionError從輸出中剝離斟览,默認(rèn)為異常消息/__str__() |

*classmethod *for_later()[source]
返回一個(gè)未填充的ExceptionInfo

type
異常類

value
異常值

tb
異常原始追溯

typename
異常的類型名稱

traceback
追溯

exconly(*tryshort = False *)[來源]
將異常作為字符串返回
當(dāng)'tryshort'解析為True,異常是_pytest._code._AssertionError時(shí)辑奈,只返回異常表示的實(shí)際異常部分(因此'AssertionError:'從頭開始刪除)

errisinstance(*exc *)[來源]
如果異常是exc的實(shí)例苛茂,則返回True

getreprshowlocals = Falsestyle ='long'鸠窗,abspath = False妓羊,tbfilter = Truefuncargs = False稍计,truncate_locals = True躁绸,*chain = True *)[來源]
返回str()表示此異常信息。
<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 參數(shù): |

  • showlocalsbool) - 顯示每個(gè)回溯條目的本地人臣嚣。忽略如果style=="native"净刮。
  • stylestr) - long | short | no | native traceback style
  • abspathbool) - 如果路徑應(yīng)更改為絕對路徑或保持不變。
  • tbfilterbool) - 隱藏包含局部變量的條目__tracebackhide__==True茧球。忽略如果style=="native"庭瑰。
  • funcargsbool) - 為每個(gè)回溯條目顯示固定裝置(用于傳統(tǒng)目的的“funcargs”)。
  • truncate_localsbool) - 使用showlocals==True抢埋,確保本地可以安全地表示為字符串弹灭。
  • chainbool) - 如果顯示Python 3中的鏈接異常督暂。
    |
    在版本3.9中更改:添加了chain參數(shù)。

match(*regexp *)[來源]
將正則表達(dá)式'regexp'與異常的字符串表示形式匹配穷吮。如果匹配則返回True(這樣就可以寫'assert excinfo.match()')逻翁。如果不匹配則引發(fā)AssertionError。

FixtureDef

*class *FixtureDef[source]
基地: object
工廠定義的容器捡鱼。

FSCollector

*class *FSCollector[source]
基地: _pytest.nodes.Collector

功能

class Function[source]
基地:_pytest.python.FunctionMixin八回,_pytest.nodes.Item_pytest.compat.FuncargnamesCompatAttr
功能項(xiàng)負(fù)責(zé)設(shè)置和執(zhí)行Python測試功能驾诈。
originalname
=無

原始函數(shù)名稱缠诅,沒有任何裝飾(例如參數(shù)"[...]"化為函數(shù)名稱添加后綴)。
3.0版中的新功能乍迄。

function
底層python'函數(shù)'對象

runtest()[來源]
執(zhí)行基礎(chǔ)測試功能管引。

setup()[來源]
執(zhí)行此測試功能的設(shè)置。

項(xiàng)目

class Item[source]
基地: _pytest.nodes.Node
一個(gè)基本的測試調(diào)用項(xiàng)闯两。請注意褥伴,對于單個(gè)函數(shù),可能存在多個(gè)測試調(diào)用項(xiàng)漾狼。
user_properties
=無

user屬性是一個(gè)元組列表(名稱重慢,值),用于保存此測試的用戶定義屬性逊躁。

add_report_section何時(shí)似踱,關(guān)鍵內(nèi)容[來源]
添加一個(gè)新的報(bào)表部分志衣,類似于內(nèi)部完成添加stdout和stderr捕獲的輸出:

item.add_report_section("call", "stdout", "report section contents")

<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 參數(shù): |

  • 當(dāng)STR) -一個(gè)可能捕獲的狀態(tài)屯援,"setup""call"念脯,"teardown"
  • keystr) - 部分名稱弯淘,可以隨意定制绿店。Pytest使用"stdout""stderr"內(nèi)部。
  • contentstr) - 作為字符串的完整內(nèi)容庐橙。
    |

MarkDecorator

*class MarkDecoratormark *)[source]
測試函數(shù)和測試類的裝飾器假勿。應(yīng)用時(shí),它將創(chuàng)建MarkInfo可以通過鉤子作為項(xiàng)目關(guān)鍵字檢索的對象 态鳖。MarkDecorator實(shí)例通常是這樣創(chuàng)建的:

mark1 = pytest.mark.NAME              # simple MarkDecorator
mark2 = pytest.mark.NAME(name1=value) # parametrized MarkDecorator

然后可以作為裝飾器應(yīng)用于測試功能:

@mark2
def test_function():
    pass

調(diào)用MarkDecorator實(shí)例時(shí)转培,它會(huì)執(zhí)行以下操作:

  1. 如果使用單個(gè)類作為其唯一的位置參數(shù)調(diào)用而沒有其他關(guān)鍵字參數(shù),則它會(huì)將自身附加到類浆竭,以便自動(dòng)應(yīng)用于該類中的所有測試用例浸须。
  2. 如果使用單個(gè)函數(shù)作為唯一的位置參數(shù)調(diào)用而沒有其他關(guān)鍵字參數(shù)惨寿,則會(huì)將MarkInfo對象附加到函數(shù),其中包含已存儲(chǔ)在MarkDecorator內(nèi)部的所有參數(shù)删窒。
  3. 當(dāng)在任何其他情況下調(diào)用時(shí)裂垦,它執(zhí)行“假構(gòu)造”調(diào)用,即它返回一個(gè)新的MarkDecorator實(shí)例肌索,其原始MarkDecorator的內(nèi)容使用傳遞給此調(diào)用的參數(shù)進(jìn)行更新蕉拢。

注意:上述規(guī)則阻止MarkDecorator對象僅存儲(chǔ)單個(gè)函數(shù)或類引用作為其位置參數(shù),而不包含其他關(guān)鍵字或位置參數(shù)诚亚。
name
mark.name的別名

args
mark.args的別名

kwargs
mark.kwargs的別名

with_args(** args晕换,** kwargs *)[來源]
返回添加了額外參數(shù)的MarkDecorator
與調(diào)用不同,即使唯一參數(shù)是可調(diào)用/類站宗,也可以使用它
<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 返回: | MarkDecorator |

MarkGenerator

*class *MarkGenerator[source]
MarkDecorator對象的工廠- 作為pytest.mark單例實(shí)例公開闸准。例:

import pytest
@pytest.mark.slowtest
def test_function():
   pass

將在MarkInfo對象上設(shè)置一個(gè)“最慢” 的test_function對象。

馬克

class Markname:str份乒,args恕汇,*kwargs *)[來源]

name=無
商標(biāo)名稱

args=無
標(biāo)記裝飾器的位置參數(shù)

kwargs=無
標(biāo)記裝飾器的關(guān)鍵字參數(shù)

combined_with其他[來源]
<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 參數(shù): | 其他馬克) - 與之結(jié)合的商標(biāo) |
| 返回類型: | 標(biāo)記 |
通過附加aargs和合并映射來組合

Metafunc

class Metafuncdefinitionfixtureinfo或辖,config瘾英,cls = Nonemodule = None [來源]
Metafunc對象被傳遞給pytest_generate_tests鉤子颂暇。它們有助于檢查測試功能并根據(jù)測試配置或在定義測試功能的類或模塊中指定的值生成測試缺谴。
config
=無

訪問_pytest.config.Config測試Session的對象

module=無
定義測試函數(shù)的模塊對象。

function=無
底層python測試功能

fixturenames=無
測試功能所需的夾具名稱集

cls=無
在或中定義測試函數(shù)的類對象None耳鸯。

parametrizeargnames湿蛔,argvaluesindirect = False县爬,ids = None阳啥,*scope = None *)[來源]
使用給定argnames的argvalues列表向基礎(chǔ)測試函數(shù)添加新調(diào)用。在收集階段執(zhí)行參數(shù)化财喳。如果您需要設(shè)置昂貴的資源察迟,請參閱設(shè)置間接,以便在測試設(shè)置時(shí)進(jìn)行耳高。
<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 參數(shù): |

  • argnames - 以逗號(hào)分隔的字符串扎瓶,表示一個(gè)或多個(gè)參數(shù)名稱,或參數(shù)字符串的列表/元組泌枪。
  • argvalues - argvalues列表確定使用不同參數(shù)值調(diào)用測試的頻率概荷。如果只指定了一個(gè)argname,則argvalues是值列表碌燕。如果指定了N個(gè)argnames误证,則argvalues必須是N元組的列表继薛,其中每個(gè)tuple-element為其各自的argname指定一個(gè)值。
  • indirect - argnames或boolean的列表雷厂。參數(shù)列表名稱(argnames的子集)惋增。如果為True,則列表包含argnames中的所有名稱改鲫。對應(yīng)于此列表中的argname的每個(gè)argvalue將作為request.param傳遞到其各自的argname fixture函數(shù)诈皿,以便它可以在測試的設(shè)置階段而不是在收集時(shí)執(zhí)行更昂貴的設(shè)置。
  • ids - 字符串ID列表或可調(diào)用的列表像棘。如果字符串稽亏,則每個(gè)字符串對應(yīng)于argvalues,以便它們是測試ID的一部分缕题。如果將None作為特定測試的id給出截歉,則將使用該參數(shù)的自動(dòng)生成的id。如果是可調(diào)用的烟零,它應(yīng)該采用一個(gè)參數(shù)(單個(gè)argvalue)并返回一個(gè)字符串或返回None瘪松。如果為None,將使用該參數(shù)的自動(dòng)生成的id锨阿。如果沒有提供id宵睦,它們將自動(dòng)從argvalues生成。
  • 范圍 - 如果指定墅诡,則表示參數(shù)的范圍壳嚎。范圍用于按參數(shù)實(shí)例對測試進(jìn)行分組。它還將覆蓋任何fixture函數(shù)定義的范圍末早,允許使用測試上下文或配置設(shè)置動(dòng)態(tài)范圍烟馅。
    |

模塊

*class *Module[source]
基地:_pytest.nodes.File_pytest.python.PyCollector
測試類和函數(shù)的收集器然磷。
collect()[來源]
返回此集合節(jié)點(diǎn)的子項(xiàng)(項(xiàng)和收集器)列表郑趁。

節(jié)點(diǎn)

class Node[source]
Collector的基類和測試集合樹的Item。收集器子類有子節(jié)點(diǎn)姿搜,Items是終端節(jié)點(diǎn)穿撮。
name
=無

父節(jié)點(diǎn)范圍內(nèi)的唯一名稱

parent=無
父收集器節(jié)點(diǎn)。

config=無
pytest配置對象

session=無
此節(jié)點(diǎn)所屬的Session

fspath=無
收集此節(jié)點(diǎn)的文件系統(tǒng)路徑(可以是None)

keywords=無
從所有范圍收集的關(guān)鍵字/標(biāo)記

own_markers=無
屬于此節(jié)點(diǎn)的標(biāo)記對象

extra_keyword_matches=無
允許添加額外的關(guān)鍵字以用于匹配

ihook
用于調(diào)用pytest鉤子的fspath敏感鉤子代理

warn警告[來源]
發(fā)出此項(xiàng)目的警告痪欲。
除非明確禁止,否則將在測試Session后顯示警告
<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 參數(shù): | 警告警告) - 要發(fā)出的警告實(shí)例攻礼。必須是PytestWarning的子類业踢。 |
| 舉: | ValueError - 如果warning實(shí)例不是PytestWarning的子類。 |
用法示例:

node.warn(PytestWarning("some message"))

nodeid
a :: - 表示其集合樹地址的分隔字符串礁扮。

listchain()[來源]
從收集樹的根開始返回所有父收集器的列表知举。

add_markermarker瞬沦,*append = True *)[來源]
動(dòng)態(tài)地將標(biāo)記對象添加到節(jié)點(diǎn)。
<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 參數(shù): | 標(biāo)記strpytest.mark.* 對象) - append=True是否附加標(biāo)記雇锡,如果False插入位置0逛钻。 |

iter_markers名稱=無[來源]
<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 參數(shù): | name - 如果給定,則按name屬性過濾結(jié)果 |
迭代節(jié)點(diǎn)的所有標(biāo)記

*for ... in iter_markers_with_nodename = None *)[來源]
<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 參數(shù): | name - 如果給定锰提,則按name屬性過濾結(jié)果 |
迭代節(jié)點(diǎn)的所有標(biāo)記返回元組序列(節(jié)點(diǎn)曙痘,標(biāo)記)

get_closest_marker名稱默認(rèn)=無[來源]
返回與名稱匹配的第一個(gè)標(biāo)記立肘,從最近(例如函數(shù))到更遠(yuǎn)級別(例如模塊級別)边坤。
<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 參數(shù): |

  • 默認(rèn) - 找不到標(biāo)記的回退返回值
  • name - 要過濾的名稱
    |

listextrakeywords()[來源]
在self和任何父母中返回一組所有額外的關(guān)鍵字。

addfinalizer(*fin *)[來源]
在最終確定此節(jié)點(diǎn)時(shí)注冊要調(diào)用的函數(shù)谅年。
只有在此節(jié)點(diǎn)在設(shè)置鏈中處于活動(dòng)狀態(tài)時(shí)才能調(diào)用此方法茧痒,例如在self.setup()期間。

getparent(*cls *)[來源]
獲取下一個(gè)父節(jié)點(diǎn)(包括ownelf)融蹂,它是給定類的一個(gè)實(shí)例

解析器

class Parser[source]
解析命令行參數(shù)和ini文件值旺订。
<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 變量: | extra_info - 泛型參數(shù)的字典 - >在處理命令行參數(shù)時(shí)出錯(cuò)的情況下顯示的值。 |
getgroup
name
超燃,description =''区拳,*after = None *)[來源]
獲取(或創(chuàng)建)命名選項(xiàng)組淋纲。
<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 名稱: | 選項(xiàng)組的名稱劳闹。 |
| 描述: | -help輸出的長描述。 |
| 后: | 其他組的名稱洽瞬,用于排序-help輸出本涕。 |
返回的組對象具有addoption與簽名相同的方法,parser.addoption但將在輸出中的相應(yīng)組中顯示伙窃。pytest. --help

addoption(** opts菩颖,** attrs *)[來源]
注冊命令行選項(xiàng)。
<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 選擇采用: | 選項(xiàng)名稱为障,可以是短期或長期期權(quán)晦闰。 |
| ATTRS: | 相同的屬性,其中add_option()所述的功能 argparse庫 接受鳍怨。 |
在命令行解析選項(xiàng)在pytest配置對象上可用之后config.option.NAME呻右,NAME通常通過傳遞dest屬性來設(shè)置,例如 鞋喇。addoption("--long", dest="NAME", ...)

parse_known_argsargs声滥,*namespace = None *)[來源]
此時(shí)解析并返回具有已知參數(shù)的命名空間對象。

parse_known_and_unknown_argsargs侦香,*namespace = None *)[來源]
解析并返回具有已知參數(shù)的名稱空間對象落塑,此時(shí)其余參數(shù)未知纽疟。

addininamehelp憾赁,type = None污朽,*default = None *)[source]
注冊ini文件選項(xiàng)。
<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 名稱: | ini-variable的名稱 |
| 類型: | 該變量的類型龙考,可以是pathlist蟆肆,argslinelistbool洲愤。 |
| 默認(rèn): | 默認(rèn)值颓芭,如果不存在ini-file選項(xiàng)但是被查詢。 |
可以通過調(diào)用來檢索ini變量的值 config.getini(name)柬赐。

插件管理

class PluginManager[source]
Core Pluginmanager類亡问,用于管理插件對象的注冊和1:N鉤子調(diào)用。
您可以通過致電注冊新的掛鉤add_hookspec(module_or_class)肛宋。您可以通過調(diào)用注冊插件對象(包含掛鉤) register(plugin)州藕。Pluginmanager初始化為在注冊的插件對象的dict名稱中搜索的前綴。
出于調(diào)試目的酝陈,您可以調(diào)用enable_tracing() 哪個(gè)隨后將調(diào)試信息發(fā)送到跟蹤幫助程序床玻。
register
插件
名稱=無[來源]
如果名稱被阻止注冊沉帮,請注冊插件并返回其規(guī)范名稱或無锈死。如果插件已注冊,則引發(fā)ValueError穆壕。

unregisterplugin = None待牵,*name = None *)[來源]
從內(nèi)部數(shù)據(jù)結(jié)構(gòu)取消注冊插件對象及其所有包含的鉤子實(shí)現(xiàn)。

set_blocked姓名[來源]
阻止給定名稱的注冊喇勋,如果已經(jīng)注冊缨该,則注銷。

is_blocked姓名[來源]
如果名稱博客注冊該名稱的插件川背,則返回True贰拿。

add_hookspecs(*module_or_class *)[來源]
添加給定module_or_class中定義的新鉤子規(guī)范。如果相應(yīng)地修飾了功能熄云,則會(huì)識(shí)別它們膨更。

get_plugins()[來源]
返回已注冊的插件集。

is_registered插件[來源]
如果插件已經(jīng)注冊缴允,則返回True询一。

get_canonical_name插件[來源]
返回插件對象的規(guī)范名稱。請注意,插件可以使用由register(plugin健蕊,name)的調(diào)用者指定的其他名稱注冊。要獲取已注冊插件的名稱踢俄,請使用get_name(plugin)缩功。

get_plugin姓名[來源]
返回給定名稱的插件或None。

has_plugin姓名[來源]
如果注冊了具有給定名稱的插件都办,則返回True嫡锌。

get_name插件[來源]
注冊插件的返回名稱,如果未注冊琳钉,則返回None势木。

check_pending()[來源]
驗(yàn)證所有未針對鉤子規(guī)范驗(yàn)證的鉤子是可選的,否則引發(fā)PluginValidationError

load_setuptools_entrypoints歌懒,名稱=無[來源]
從查詢指定的setuptools加載模塊group啦桌。
<colgroup><col class="field-name" style="hyphens: manual;"><col class="field-body"></colgroup>
| 參數(shù): |

  • groupstr) - 加載插件的入口點(diǎn)組
  • namestr) - 如果給定,只加載給定的插件name及皂。
    |
    | 返回類型: |
    INT
    |
    | 返回: |
    通過此調(diào)用返回加載的插件數(shù)甫男。
    |

list_plugin_distinfo()[來源]
返回所有setuptools注冊插件的distinguishedfo / plugin元組列表。

list_name_plugin()[來源]
返回名稱/插件對的列表验烧。

get_hookcallers插件[來源]
獲取指定插件的所有鉤子調(diào)用者板驳。

add_hookcall_monitoring之前之后[來源]
在所有掛鉤的跟蹤功能之前/之后添加并返回一個(gè)撤銷功能碍拆,當(dāng)被調(diào)用時(shí)若治,將刪除添加的跟蹤器。
before(hook_name, hook_impls, kwargs) 將在所有掛鉤調(diào)用之前調(diào)用并接收一個(gè)hookcaller實(shí)例感混,一個(gè)HookImpl實(shí)例列表和一個(gè)鉤子調(diào)用的關(guān)鍵字參數(shù)端幼。
after(outcome, hook_name, hook_impls, kwargs)接收相同的參數(shù),before但也接收一個(gè)`_Result``表示整個(gè)鉤子調(diào)用的結(jié)果的對象浩习。

enable_tracing()[來源]
啟用對鉤子調(diào)用的跟蹤并返回撤銷功能静暂。

subset_hook_callername,*remove_plugins *)[來源]
為命名方法返回一個(gè)新的_HookCaller實(shí)例谱秽,該方法管理除remove_plugins之外的所有已注冊插件的調(diào)用洽蛀。

PytestPluginManager

*class *PytestPluginManager[source]
基地: pluggy.manager.PluginManager
覆蓋pluggy.PluginManager以添加特定于pytest的功能:

  • 從命令行加載插件,加載插件中的PYTEST_PLUGINSenv變量和 pytest_plugins全局變量;
  • conftest.py 在啟動(dòng)期間裝載;
    addhooks(*module_or_class *)[來源]
    自2.8版以來已棄用疟赊。
    pluggy.PluginManager.add_hookspecs 改用郊供。

parse_hookimpl_opts插件名稱[來源]

parse_hookspec_optsmodule_or_class近哟,*name *)[來源]

register插件驮审,名稱=無[來源]
如果名稱被阻止注冊,請注冊插件并返回其規(guī)范名稱或無。如果插件已注冊疯淫,則引發(fā)ValueError地来。

getplugin姓名[來源]

hasplugin姓名[來源]
如果注冊了具有給定名稱的插件,則返回True熙掺。

pytest_configure(*config *)[來源]

consider_preparse(*args *)[來源]

consider_pluginarg(*arg *)[來源]

consider_conftest(*conftestmodule *)[來源]

consider_env()[來源]

consider_module(*mod *)[來源]

import_pluginmodname未斑,*consideration_entry_points = False *)[來源]
用插件導(dǎo)入插件modname。如果consider_entry_points為True币绩,則還會(huì)將入口點(diǎn)名稱視為查找插件蜡秽。

Session

*class *Session[source]
基地: _pytest.nodes.FSCollector
異常Interrupted
基地: KeyboardInterrupt
發(fā)出中斷的測試運(yùn)行信號(hào)。

異常Failed
基地: Exception
在測試運(yùn)行失敗時(shí)發(fā)出停止信號(hào)缆镣。

*for ... in *collect()[source]
返回此集合節(jié)點(diǎn)的子項(xiàng)(項(xiàng)和收集器)列表芽突。

TestReport

class TestReport[source]
基本測試報(bào)告對象(如果失敗,也用于設(shè)置和拆除調(diào)用)董瞻。
nodeid
=無

規(guī)范化的集合節(jié)點(diǎn)ID

location=無
a(filesystempath寞蚌,lineno,domaininfo)元組指示測試項(xiàng)的實(shí)際位置 - 它可能與收集的測試項(xiàng)不同力细,例如睬澡,如果方法是從不同的模塊繼承的。

keywords=無
name - > value字典眠蚂,包含與測試調(diào)用關(guān)聯(lián)的所有關(guān)鍵字和標(biāo)記煞聪。

outcome=無
測試結(jié)果,總是“通過”逝慧,“失敗”昔脯,“跳過”之一。

longrepr=無
無或失敗表示笛臣。

when=無
'setup'云稚,'call','teardown'之一表示測試階段沈堡。

user_properties=無
user屬性是一個(gè)元組列表(名稱静陈,值),用于保存用戶定義的測試屬性

sections=無
需要編組的額外信息對的列表诞丽。通過pytest用于添加從捕獲的文本和鲸拥,但是可以通過其它的插件可用于任意信息添加到報(bào)表。(str, str)``stdout``stderr

duration=無
只運(yùn)行測試所花費(fèi)的時(shí)間

classmethod from_item_and_callitem僧免,*call *)
使用標(biāo)準(zhǔn)項(xiàng)和調(diào)用信息創(chuàng)建和填充TestReport的工廠方法刑赶。

caplog
如果啟用了日志捕獲,則返回捕獲的日志行
版本3.5中的新功能懂衩。

capstderr
如果啟用了捕獲撞叨,則從stderr返回捕獲的文本
3.0版中的新功能金踪。

capstdout
如果啟用了捕獲,則從stdout返回捕獲的文本
3.0版中的新功能牵敷。

count_towards_summary
試驗(yàn)
如果此報(bào)告應(yīng)計(jì)入測試Session結(jié)束時(shí)顯示的總計(jì)胡岔,則返回True:“1通過,1失敗等”劣领。
注意
此功能被認(rèn)為是實(shí)驗(yàn)性的姐军,因此請注意即使在修補(bǔ)程序版本中它也會(huì)發(fā)生變化。

head_line
試驗(yàn)
返回此報(bào)告的longrepr輸出顯示的頭行尖淘,更常見的是在故障期間的回溯表示期間:

________ Test.foo ________

在上面的示例中,head_line是“Test.foo”著觉。
注意
此功能被認(rèn)為是實(shí)驗(yàn)性的村生,因此請注意即使在修補(bǔ)程序版本中它也會(huì)發(fā)生變化。

longreprtext
只讀屬性饼丘,返回完整的字符串表示形式longrepr趁桃。
3.0版中的新功能。

[_result ]

class _Resultresult肄鸽,*excinfo *)
result
獲取此掛鉤調(diào)用的結(jié)果(DEPRECATED支持get_result())卫病。

force_result結(jié)果
強(qiáng)制結(jié)果result
如果掛鉤被標(biāo)記為firstresult單個(gè)值典徘,則應(yīng)設(shè)置否則設(shè)置(修改)結(jié)果列表蟀苛。調(diào)用期間發(fā)現(xiàn)的任何異常都將被刪除。

get_result()
獲取此掛鉤調(diào)用的結(jié)果逮诲。
如果鉤子被標(biāo)記為firstresult只有一個(gè)值帜平,則返回結(jié)果列表。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末梅鹦,一起剝皮案震驚了整個(gè)濱河市裆甩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌齐唆,老刑警劉巖嗤栓,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件媒殉,死亡現(xiàn)場離奇詭異刹悴,居然都是意外死亡就轧,警方通過查閱死者的電腦和手機(jī)乎莉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門存筏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來券册,“玉大人,你說我怎么就攤上這事赚窃§挪剩” “怎么了划址?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長限府。 經(jīng)常有香客問我夺颤,道長,這世上最難降的妖魔是什么胁勺? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任世澜,我火速辦了婚禮,結(jié)果婚禮上署穗,老公的妹妹穿的比我還像新娘寥裂。我一直安慰自己,他們只是感情好案疲,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布封恰。 她就那樣靜靜地躺著,像睡著了一般褐啡。 火紅的嫁衣襯著肌膚如雪诺舔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天备畦,我揣著相機(jī)與錄音低飒,去河邊找鬼。 笑死懂盐,一個(gè)胖子當(dāng)著我的面吹牛褥赊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播莉恼,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼拌喉,長吁一口氣:“原來是場噩夢啊……” “哼速那!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起司光,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤琅坡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后残家,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體雀瓢,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年正塌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了道媚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,696評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡回窘,死狀恐怖诺擅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情啡直,我是刑警寧澤烁涌,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站酒觅,受9級特大地震影響撮执,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜舷丹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一抒钱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧颜凯,春花似錦谋币、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至穴豫,卻和暖如春凡简,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背精肃。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工秤涩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人司抱。 一個(gè)月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓筐眷,卻偏偏與公主長得像,于是被迫代替她去往敵國和親习柠。 傳聞我的和親對象是個(gè)殘疾皇子匀谣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容