代码之家  ›  专栏  ›  技术社区  ›  David Parks

将py.test限制为仅运行pylint而不是unittests

  •  1
  • David Parks  · 技术社区  · 6 年前

    我想跑 py.test 只执行pylint,不执行unittests。

    此页上的文档表明您可以执行以下操作:

    https://pypi.org/project/pytest-pylint/

    您可以通过键入以下内容将测试运行限制为仅执行pylint检查,而不执行任何其他测试:

      py.test --pylint -m pylint
    

    但是当我准确地运行这个命令时,仍然会从UnitTests中得到错误 P.试验 找到了。linting过程似乎按预期运行,然后我在unittest文件中报告了大量错误。这似乎与文档相反。

    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
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Gediminas    6 年前

    这可能不是您要寻找的答案,但请考虑使用“浏览”。

    它是一些python linting库(包括pylint)的包装器,可以直接生成xunit报告。

    https://prospector.readthedocs.io/en/master/usage.html#output-format

        2
  •  0
  •   David Parks    6 年前

    代表评论回答:

    在单元测试或实际测试中,您是否遇到有关代码样式的linter错误? 单元测试失败?2月7日20:12

    好问题,主要是模块导入错误,pythonpath问题 UnitTest文件,虽然很容易解决,但不应该运行在 所有。我们只想在詹金斯的这一部分出现线头错误 管道。我们将定义管道的另一部分来运行单元测试 适当地。大卫·帕克斯2月7日20:14

    “>主要是模块导入错误,UnitTest文件中的pythonpath问题虽然容易解决,但不应该运行这些问题。” -我认为这里的解释是pytest试图加载单元测试模块,但实际上不会运行它们。-m pylint是一个标记过滤器,这意味着只有标记为“pylint”的测试才能运行。所以pytest必须检查所有的测试并检查它们的标记。我想解决导入/pythonpath问题可以解决这个问题,py.test--pylint-m pylint将按预期工作。2月7日20:47