1 回答
TA貢獻(xiàn)1813條經(jīng)驗(yàn) 獲得超2個(gè)贊
該conftest插件將在兩次調(diào)用中注冊(cè),唯一的區(qū)別是注冊(cè)階段。如果有疑問(wèn),請(qǐng)?zhí)砑?-traceconfig參數(shù)以按注冊(cè)順序列出已注冊(cè)的插件:
$ pytest --traceconfig
PLUGIN registered: <_pytest.config.PytestPluginManager object at 0x7f23033ff100>
PLUGIN registered: <_pytest.config.Config object at 0x7f2302d184c0>
...
=================================== test session starts ===================================
...
PLUGIN registered: <module 'conftest' from 'path/to/conftest.py'>
...
在第一次調(diào)用中,conftest.py不會(huì)立即找到它,因?yàn)樗挥跍y(cè)試根路徑下,因此將在pytest發(fā)現(xiàn)測(cè)試時(shí)加載它。在第二次調(diào)用中,conftest.py位于測(cè)試根目錄中,因此即使在測(cè)試會(huì)話(huà)開(kāi)始之前也會(huì)加載它(在加載通過(guò)-parg 傳遞并通過(guò)setuptools入口點(diǎn)注冊(cè)的插件之后)。運(yùn)行pytest -s(禁用輸出捕獲)應(yīng)該會(huì)顯示位于該==== test session starts ====行上方的自定義打印。
如果您希望兩次調(diào)用之間的打印內(nèi)容相同,請(qǐng)將其放入合適的掛鉤中。例如,要始終CONFTEST loaded在測(cè)試收集完成后打印,請(qǐng)使用:
# api_tests/conftest.py
def pytest_collectreport(report):
? ? print("CONFTEST loaded")
還有其他選項(xiàng)可用于自定義輸出放置;最好是查看參考中的Hookspytest下的可用鉤子列表。
添加回答
舉報(bào)
