测试文件的不同 Pylint 标准

the*_*Sin 5 python pylint pytest

我有一个典型的 Python 代码库,其中.py有数十个目录中的数百个文件,以及数十个/tests/充满test_whatever.py文件的目录(我使用 运行pytest)。

但是,老实说,我关心pylint测试文件中的内容比真正代码中的内容要低得多。如何忽略文件/tests/夹中文件的这四件事?

  1. missing-module-docstring
  2. missing-class-docstring
  3. missing-function-docstring
  4. protected-access

我成功解决的唯一一个问题是函数文档字符串,将其放入我的pylintrc

no-docstring-rgx=^_|^test_
Run Code Online (Sandbox Code Playgroud)

可以修复其他的吗?(我无法完全将测试文件排除在 linting 之外。)

小智 0

您可以使用 tox,它是一个通用的 virtualenv 管理和测试命令行工具。毒素可以帮助您:

  • 检查你的包是否在不同的 python 版本中正确安装
  • 在每个环境中运行测试
  • 充当持续集成服务器的前端

您可以在他们的官方网站上阅读有关 tox 的更多信息

安装毒物pip install tox

在根级别添加 tox.ini 文件。请参阅下图中的项目结构

在此输入图像描述

在 tox.ini 中,运行测试和 pylint 的基本配置如下所示:

[tox]
minversion = 2.0
envlist = py36, pylint
skipsdist = True

[testenv]
commands = {envbindir}/pytest {posargs}
deps = -r{toxinidir}/requirements.txt
       -r{toxinidir}/dev-requirements.txt
recreate = False
passenv = *

[testenv:pylint]
basepython=python3.6
deps = -r{toxinidir}/requirements.txt
       -r{toxinidir}/dev-requirements.txt
commands=pylint src
         pylint --disable=missing-module-docstring,missing-class-docstring tests
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我将 pylint 分成 2 个命令,这让我可以控制如何以不同的方式检查src测试

要运行 tox (tests + lint),只需tox在终端中从 tox.ini 目录运行即可。

如果您只想运行 pylint 那么您可以运行tox -e pylint