我正在使用 Pycharm 运行用 Pytest 构建的自动化框架。 在一些试图访问其他灯具属性的灯具中,我得到: 在“bar”错误中找不到引用“foo”。
示例:
在我的fixtures.py 文件中,我有以下内容:
@pytest.fixture(scope='class')
def foo():
foo.bar = Baz()
yield foo
@pytest.fixture(scope='class')
def play(foo, request):
foo.bar.do_something(request.param)
yield
在这种情况下,Pycharm 会在
bar
中用橙色下划线标记 play
,并且会显示:
Cannot find reference 'bar' in 'function'
。
此外,在 cmd+单击
foo
或 bar
时,它不会带我到 foo
的函数减速,但是 cmd+单击 do_something
会带我到 do_something
中的
Baz
减速.
简单地忽略这个错误不是我可以考虑的事情。
我希望 Pycharm 能够“知道”我添加到每个灯具的属性,并能够向我推荐它的减速。
你正在重新定义
foo
,试试这个
@pytest.fixture(scope='class')
def foo():
_foo = MagicMock()
_foo.bar = Baz()
yield _foo
@pytest.fixture(scope='class')
def play(foo, request):
foo.bar.do_something(request.param)
yield