Skip to main content

pytest 插件,用于使用 pyflakes 检查源代码

项目描述

pytest-flakes

py.test 插件,用于使用 pyflakes 有效地检查 python 源代码。

用法

通过安装:

pip install pytest-flakes

如果您随后键入:

py.test --flakes

每个以.py结尾的文件都将被发现并通过 pyflakes 运行,从命令行参数开始。

简单的使用示例

考虑你有这个代码:

# content of module.py

import os
from os.path import *

def some_function():
    pass

在安装了 pytest-flakes 的情况下运行它会出现两个问题:

$ py.test -q --flakes
F
================================= FAILURES =================================
______________________________ pyflakes-check ______________________________
/tmp/doc-exec-685/module.py:2: UnusedImport
'os' imported but unused
/tmp/doc-exec-685/module.py:3: ImportStarUsed
'from os.path import *' used; unable to detect undefined names
1 failed in 0.00 seconds

这些只是 pytest-flakes 可以找到的众多问题中的两个。

为每个项目和文件配置 pyflakes 选项

您可以通过在setup.cfgpytest.ini文件中添加flakes-ignore条目来为您的项目配置 pyflakes-checking 选项,如下所示:

# content of setup.cfg
[pytest]
flakes-ignore = ImportStarUsed

这将在全球范围内防止对明星进口的投诉。使用上面的示例重新运行现在看起来会更好:

$ py.test -q --flakes
F
================================= FAILURES =================================
_________________ pyflakes-check(ignoring ImportStarUsed) __________________
/tmp/doc-exec-685/module.py:2: UnusedImport
'os' imported but unused
1 failed in 0.00 seconds

但当然,我们仍然希望删除import os行以顺利通过。

如果您有一些文件要专门忽略一些错误或警告,您可以使用 glob-pattern 和空格分隔的代码列表开始一个 flakes-ignore 行:

# content of setup.cfg
[pytest]
flakes-ignore =
    *.py UnusedImport
    doc/conf.py ALL

忽略文件中的某些行

您可以通过向它们附加特殊注释来忽略每行错误,如下所示:

import sys # noqa
app # pragma: no flakes

运行 pyflakes 检查并且没有其他测试

您可以通过键入以下命令将测试运行限制为仅执行“薄片”测试而不执行任何其他测试:

py.test --flakes -m flakes

这只会运行标记有“flakes”关键字的测试,该关键字是为此插件添加的 flakes 测试项目添加的。

如果您使用的是 pytest < 2.4,则使用以下调用达到相同的效果:

py.test --flakes -k flakes

笔记

该插件的存储库位于https://github.com/asmeurer/pytest-flakes

有关 py.test 的更多信息,请参见http://pytest.org

该代码部分基于 Ronny Pfannschmidt 的 pytest-codecheckers 插件和 Holger Krekel 的 pytest-pep8。

变化

4.0.5 - 2021-12-02

  • 对即将推出的 pytest 7.0 中弃用的进一步修复。[尼科德莫斯]

4.0.4 - 2021-10-26

  • 修复 pytest-flakes 以在即将到来的 pytest 7.0 中弃用。[蓝科技]

  • 修复 Python 3.10 中的 pytest-flakes 测试套件。[蓝科技]

  • 将 Travis CI 替换为 GitHub Actions。[蓝科技]

4.0.3 - 2020-11-27

  • 针对未来版本的 pytest 的一些代码的未来证明。[罗尼普凡施密特]

4.0.2 - 2020-09-18

  • 修复直接在 __init__.py 文件上调用 pytest –flakes。[基曼]

4.0.1 - 2020-07-28

  • pytest-flakes 的维护已从 fschulze 转移到 asmeurer。pytest-flakes 的仓库现在位于https://github.com/asmeurer/pytest-flakes/

  • 修复测试失败。[asmeurer]

  • 修复来自 pytest 的弃用警告。[asmeurer]

  • 修复无效的转义序列。[基曼]

4.0.0 - 2018-08-01

  • 要求 pytest >= 2.8.0 并删除 pytest-cache 要求。自该版本以来,缓存包含在 pytest 中。[smarlowucf (肖恩·马洛)]

3.0.2 - 2018-05-16

  • 修复薄片标记名称中的拼写错误。[fschulze]

3.0.1 - 2018-05-16

  • 始终注册flakes标记,不仅在使用--flakes选项时。[fschulze]

3.0.0 - 2018-05-16

  • 放弃对 Python 3.3 的支持。到目前为止它仍然有效,但不再经过测试。[fschulze]

  • 添加自 pytest 3.1 以来所需的薄片标记。[fschulze]

  • 使用 pyflakes.api.isPythonFile 来检测 Python 文件。这可能会测试比以前更多的文件,因此可能会导致以前未捕获的故障。[阿斯穆勒 (Aaron Meurer)]

2.0.0 - 2017-05-12

  • 放弃对 Python 2.5、2.6、3.2 的支持/测试。[fschulze]

  • 添加了对 Python 3.6 的测试。[fschulze]

  • 修复了一些打包和元数据错误。[弗拉迪 (Michael Fladischer), fschulze]

1.0.1 - 2015-09-17

  • 与即将推出的 pytest 兼容。[罗尼·普凡施密特 (Ronny Pfannschmidt)]

1.0.0 - 2015-05-01

  • 修复问题 #6 - 支持 PEP263 进行源文件编码。[编译器(Florian Bruhin),fschulze]

  • 明确许可是 MIT 之类的 pytest-pep8,这是从中派生的。[fschulze]

0.2 - 2013-02-11

  • 使用add_marker() API适应 pytest-2.4.2 。[fschulze,hpk42 (Holger Krekel)]

  • 通过附加 #noqa 或 #pragma: no flakes [fschulze, silviot (Silvio Tomatis)] 允许每行跳过错误

  • Python 3.x 兼容性。[fschulze, encukou (Petr Viktorin)]

0.1 - 2013-02-04

  • 初始发行。[fschulze (弗洛里安·舒尔茨)]

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pytest-flakes-4.0.5.tar.gz (7.3 kB 查看哈希)

已上传 source

内置分布

pytest_flakes-4.0.5-py2.py3-none-any.whl (6.8 kB 查看哈希

已上传 py2 py3