PyCharm对整个文件无影响?

时间:2014-04-09 02:01:17

标签: python pycharm pytest

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

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

from myfixtures import user  # Unused import statement warning

def test_is_awesome(user):  # Shadows name 'user' from outer scope warning
    assert user.is_awesome()

py.test还有其他警告,例如使用pytest.raises()会导致pytest.py中出现“找不到引用'引发'”。

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

3 个答案:

答案 0 :(得分:18)

  

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

是。这个答案仅适用于这个问题(而不是关于"也许还有另外一种解决这些问题的方法吗?也许我没有错误地使用py.test?" )。

  1. "设置|作用域"
  2. 创建新范围,其中包括此类"不需要的"文件(S)
  3. "设置|检查"
  4. 查找"有问题"检查
  5. 右键单击并选择"添加范围"
  6. 禁用该特定范围的检查
  7. 或者(可能有效或可能无效:取决于实际检查......我不确定它是否真的以这种方式在PyCharm中运行 - 不幸的是我自己不是一个PyCharm用户)< / p>

    1. Alt + Enter ,而插入符号位于代码中的错误/警告位置
    2. 从显示的弹出菜单中选择正确的条目
    3. 使用右箭头键展开子菜单
    4. 寻找&#34;抑制检查&#34;选项
    5. 这就是它在PhpStorm中的样子(截图显示&#34;抑制语句&#34;选项而不是&#34;抑制整个文件&#34;)

      enter image description here

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

答案 1 :(得分:6)

回答&#34;也许我错误地使用py.test?&#34;问题:

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

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

答案 2 :(得分:-1)

我发现将per语句检查:

    ...
    # noinspection PyUnusedLocal
    instance = mommy.make(Contact)

在文件的开头为整个文件禁止它:

from django.urls import reverse


# noinspection PyUnusedLocal