我正在尝试运行py.test
并仅执行pylint,而不执行单元测试。
此页面上的文档表明您可以做到:
https://pypi.org/project/pytest-pylint/
您可以通过键入以下内容来限制测试运行,使其仅执行pylint检查,而不执行任何其他测试:
py.test --pylint -m pylint
但是当我确切地运行该命令时,我仍然会从py.test
找到的单元测试中得到错误。整理过程似乎按预期运行,然后报告了单元测试文件中的许多错误。这似乎与文档相反。
py.test --version
表明我正在使用0.14.0
:
$ py.test --version
This is pytest version 4.0.0, imported from /usr/local/lib/python3.6/dist-packages/pytest.py
setuptools registered plugins:
pytest-pylint-0.14.0 at /usr/local/lib/python3.6/dist-packages/pytest_pylint.py
答案 0 :(得分:1)
这可能不是您要找的答案,但是请考虑使用Prospector。
它是一些Python linting库(包括pylint)的包装,它可以立即生成xUnit报告。
请参见https://prospector.readthedocs.io/en/master/usage.html#output-format
答案 1 :(得分:0)
代表评论进行回答:
您是否在单元测试或实际测试中遇到有关代码样式的linter错误 单元测试失败? – Gediminas 2月7日20:12
好问题,主要是模块导入错误, 虽然易于解决,但不应在以下位置运行的单元测试文件 所有。我们仅在詹金斯的这一部分中需要皮棉错误 管道。我们将定义管道的另一部分来运行单元测试 正确地。 – David Parks 2月7日20:14
“>主要是模块导入错误,即unittest文件中的pythonpath问题,尽管很容易解决,但根本不应该运行。” -我认为这里的解释是pytest正在尝试加载单元测试模块,但实际上不会运行它们。 -m pylint是标记过滤器,这意味着仅必须运行标记为“ pylint”的测试。因此,pytest必须仔细检查所有测试并检查其标记。我猜想解决import / pythonpath问题将解决该问题,并且py.test --pylint -m pylint的行为将与预期的一样。 – Gediminas 2月7日20:47