Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何导入pytest monkeypatch插件?_Python_Pytest_Monkeypatching - Fatal编程技术网

Python 如何导入pytest monkeypatch插件?

Python 如何导入pytest monkeypatch插件?,python,pytest,monkeypatching,Python,Pytest,Monkeypatching,我想使用插件,但我不知道如何导入它。我试过: 导入monkeypath 导入pytest.monkeypatch 从pytest导入monkeypatch 它不是插件,而是内置的 简而言之,这意味着您只需使用monkeypatch参数编写一个测试,测试将获得monkeypatch对象作为该参数 您链接的页面有一个简单的示例: def test_some_interaction(monkeypatch): monkeypatch.setattr("os.getcwd", lambda:

我想使用插件,但我不知道如何导入它。我试过:

  • 导入monkeypath
  • 导入pytest.monkeypatch
  • 从pytest导入monkeypatch

它不是插件,而是内置的

简而言之,这意味着您只需使用
monkeypatch
参数编写一个测试,测试将获得monkeypatch对象作为该参数

您链接的页面有一个简单的示例:

def test_some_interaction(monkeypatch):
    monkeypatch.setattr("os.getcwd", lambda: "/")
为了证实他的评论,如果您出于任何原因想从Python内部使用MonkeyPatch,它对我来说就是这样(基于的答案)


pytest
的内部构件,如
MonkeyPatch
类,位于名为
\u pytest
的包中。您可以导入它,但前面的下划线基本上是一个礼貌的指示器,表明您导入的任何名称都是私有的,您应该仔细考虑使用它。PEP8在此解释此约定:
from _pytest.monkeypatch import MonkeyPatch

def test_some_interaction(monkeypatch):
    monkeypatch.setattr("os.getcwd", lambda: "/")

test_some_interaction(MonkeyPatch())