PyCharm对整个文件无影响?

gak*_*gak 22 python pytest pycharm

是否可以在PyCharm中禁用对整个文件的检查?

这需要的原因是在处理py.test时.它使用看似影子函数参数的灯具,同时导致未解析的引用.例如:

from myfixtures import user  # Unused import statement warning

def test_is_awesome(user):  # Shadows name 'user' from outer scope warning
    assert user.is_awesome()
Run Code Online (Sandbox Code Playgroud)

py.test还有其他警告,例如使用pytest.py中pytest.raises()的"无法找到引用'引发'".

也许还有另一种方法来解决这些问题?也许我错误地使用了py.test?

Laz*_*One 21

是否可以在PyCharm中禁用对整个文件的检查?

是.这个答案仅适用于这个问题(而不是"也许还有另一种方法来解决这些问题?也许我正在使用py.test错误?").

  1. "设置|范围"
  2. 创建包含此类"不需要的"文件的新范围
  3. "设置|检查"
  4. 找到"有问题"的检查
  5. 右键单击并选择"添加范围"
  6. 禁用该特定范围的检查

或者(可能工作或可能不工作:取决于实际检查..我不确定它是否真的以这种方式在PyCharm中工作 - 不幸的是我自己不是PyCharm用户)

  1. Alt + Enter 插入符号位于代码中的错误/警告位置
  2. 从出现的弹出菜单中选择正确的条目
  3. 使用Arrow Right键展开子菜单
  4. 寻找"抑制检查"选项

这就是它在PhpStorm中的样子(截图显示"抑制语句"选项,而不是"抑制整个文件"):

在此输入图像描述

相关:https://stackoverflow.com/a/20803118/783119

  • 谢谢.这是非常方便的,因为您可以通过源代码管理共享这些设置. (2认同)

flu*_*lub 6

回答"也许我错误地使用了py.test?" 题:

导入灯具不是最好的模式.相反,最好将fixtures放在需要它们的包的conftest.py文件中.如果在两个包中使用fixture,只需将conftest.py放在其父目录中并将夹具放在那里.这应该摆脱未使用的导入和阴影警告.

至于pytest.raises命名空间问题,我认为目前没有解决方案.这也是pylint遭受的损失(我认为有一种努力为pylint创建一个py.test插件来解决这些问题).所以我认为在一天结束时,linter仍然需要了解py.test.