第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 pytest 在僅運行測試子集時不加載 conftest.py?

為什么 pytest 在僅運行測試子集時不加載 conftest.py?

ibeautiful 2023-10-11 16:22:36
這是我的 API 測試目錄布局:api_tests├── conftest.py└── query    └── me_test.pyconftest.py的內(nèi)容:print("CONFTEST LOADED")me_test.py 的內(nèi)容:"""Tests the "me" query"""def test_me():    assert True如果我只是運行pytest,一切正常:================================================= test session starts =================================================platform linux -- Python 3.8.5, pytest-6.1.0, py-1.9.0, pluggy-0.13.1rootdir: /home/hubro/myproject, configfile: pytest.inicollecting ... CONFTEST LOADEDcollected 3 items                                                                                                     api_tests/query/me_test.py .                                                                                    [ 33%]lib/myproject/utils_test.py .                                                                                   [ 66%]lib/myproject/schema/types/scalars_test.py .                                                                    注意打印“CONFTEST LOADED”。偉大的!然而,這個測試運行也獲取了我不想要的所有單元測試。我想將我的測試運行分為單元測試和 API 測試,我不想一次性運行它們。但是,如果我只是運行pytest api_tests/:================================================= test session starts =================================================platform linux -- Python 3.8.5, pytest-6.1.0, py-1.9.0, pluggy-0.13.1rootdir: /home/hubro/myproject, configfile: pytest.inicollected 1 item                                                                                                      api_tests/query/me_test.py .                                                                                    [100%]================================================== 1 passed in 0.00s ==================================================現(xiàn)在運行了正確的測試,但是 conftest.py 文件沒有加載......這是怎么回事?我在 Python 3.8 上使用 Pytest 6.1.0。編輯:好吧,我找到了一個可接受的解決方法。我可以通過命令行使用該選項覆蓋 INI 文件選項-o。這有效:poetry run pytest -o "testpaths=api_tests"然而,我非常想要原始問題的答案,所以我不會刪除它。
查看完整描述

1 回答

?
慕姐8265434

TA貢獻1813條經(jīng)驗 獲得超2個贊

該conftest插件將在兩次調(diào)用中注冊,唯一的區(qū)別是注冊階段。如果有疑問,請?zhí)砑?-traceconfig參數(shù)以按注冊順序列出已注冊的插件:


$ 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不會立即找到它,因為它位于測試根路徑下,因此將在pytest發(fā)現(xiàn)測試時加載它。在第二次調(diào)用中,conftest.py位于測試根目錄中,因此即使在測試會話開始之前也會加載它(在加載通過-parg 傳遞并通過setuptools入口點注冊的插件之后)。運行pytest -s(禁用輸出捕獲)應(yīng)該會顯示位于該==== test session starts ====行上方的自定義打印。


如果您希望兩次調(diào)用之間的打印內(nèi)容相同,請將其放入合適的掛鉤中。例如,要始終CONFTEST loaded在測試收集完成后打印,請使用:


# api_tests/conftest.py


def pytest_collectreport(report):

? ? print("CONFTEST loaded")

還有其他選項可用于自定義輸出放置;最好是查看參考中的Hookspytest下的可用鉤子列表。



查看完整回答
反對 回復(fù) 2023-10-11
  • 1 回答
  • 0 關(guān)注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號