当从模块导入特征时,py.test处理pylint和flake8

时间:2017-11-09 08:15:39

标签: python pytest

所以,我大概有这段代码:

from .fixtures import some_fixture


def test_whatever(some_fixture):
    print(some_fixture)

我从flake8收到两条警告:

  

F401'.fixtures.some_fixture'导入但未使用

  

F811从第1行重新定义未使用的'some_fixture'

我不打算在任何地方移动灯具,但是“装饰”每个测试定义以及每次导入noqapylint评论都是一种非常悲伤和无色的生活(尤其是有时它当没有真正使用固定装置时,会沉默一个合法的警告。

我还能做什么?

3 个答案:

答案 0 :(得分:5)

使用flake8和pylint的指令禁用检查:

from .fixtures import some_fixture  # noqa: F401; pylint: disable=unused-variable

def test_whatever(some_fixture):
    print(some_fixture)

没有办法解决这个问题。

答案 1 :(得分:0)

还有另一种解决方法:分别在代码及其测试上运行linter,仅在检查测试时忽略这些警告。

此外,您可以向pylint或flake8提交PR,如果导入的名称是灯具,则可以忽略这些检查。

答案 2 :(得分:0)

更好的方法是将灯具放置在conftest.py文件中,这是共享灯具的推荐位置。

它们将被pytest自动发现。您将不必导入它们,因此不需要F401,并且由于参数不会与导入冲突,因此不再需要F811。