在 Pycharm + pytest 中出现“无法在‘bar’中找到引用‘foo’”错误

问题描述 投票:0回答:1

我正在使用 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 能够“知道”我添加到每个灯具的属性,并能够向我推荐它的减速。

python pytest fixtures
1个回答
0
投票

你正在重新定义

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
© www.soinside.com 2019 - 2024. All rights reserved.