从PYCHARM运行时使PYTEST更安静

2024-09-30 02:22:35 发布

您现在位置:Python中文网/ 问答频道 /正文

更新:下面显示的消息不受pytest各种“-q”安静选项的控制。他们来自TeamCity插件…
请看下面我的答案。你知道吗

原文:我已经阅读了现有的用于沉默pytest的堆栈溢出答案,但是没有人告诉我如何沉默我收到的大量冗余的“测试通过”消息。我有这么多,我的错误消失滚动页。(因为这是在pycharm中,所以我可以添加参数,但我不控制命令行。)

救命啊!你知道吗

为清楚起见,我想删除以下消息: (既不——沉默,也不——q似乎起作用)

test_lang.py::TestParsing::test_parsing PASSED                           [  2%]
test_lang.py::TestParsing::test_xxx PASSED                               [  3%]
test_mixin.py::TestHeadSettable::test_headsettable PASSED                [  4%]
test_mixin.py::TestPathy::test_tree_null_creation PASSED 

。。。你知道吗

test_uf.py::TestListyStructure::test_extend[UnitList] PASSED             [ 96%]
test_uf.py::TestListyStructure::test_extend[UnitListWrapper] PASSED      [ 97%]
test_uf.py::TestListyStructure::test_slice[UnitList] PASSED              [ 98%]
test_uf.py::TestListyStructure::test_slice[UnitListWrapper] PASSED       [ 99%]
test_uf.py::TestUnitMisc::test_main PASSED                               [100%]

============================= 101 passed in 0.49s ==============================

Tags: 答案pytest消息langpytestslicemixin
2条回答

Linux:

您可以使用:<your_command> >/dev/null。在这种情况下,标准输出将被重定向到/dev/null。这意味着如果在运行测试期间出现错误(STDERR),您将看到它。如果要完全抑制pytest的输出,可以使用:<your_command> >/dev/null 2>&1。在这种情况下,STDOUT和STDERR将被重定向到/dev/null

示例:

py.test test.py >/dev/null 2>&1

窗口:

Windows操作系统的情况非常相似。只有您可以使用NUL而不是/dev/null。你知道吗

示例:

py.test test.py 2>&1 >NUL

(最新版本的PyCharm详情见下图)

PYCHARM 2018的解决方案是静默地安装一个名为TeamCity的pytest插件。它需要这个插件来跟踪哪些测试成功或失败。您可以通过编辑Pycharm runner脚本来禁用此插件的加载。(恶心!)你知道吗

在Mac上,此文件位于: /应用程序/PyCharm.app/Contents/helpers/PyCharm//\u jb\u pytest\u runner.py公司

添加如下所示的行以禁用TeamCity的加载:

...
jb_doc_args("pytest", args)
# We need to preparse numprocesses because user may set it using ini file
plugins_to_load = []    # < - ADD THIS LINE TO AVOID TEAMCITY PLUGIN
config_result = real_prepare_config(args, plugins_to_load)
...
UPDATE FOR 2019.3 and later.
On a Mac this file is located at: /Applications/PyCharm.app/Contents/plugins/python/helpers/pycharm/_jb_pytest_runner.py


    ...
    jb_doc_args("pytest", args)
    plugins_to_load = []    # ADDED THIS LINE TO AVOID EXTRA PYTEST PRINTING
    ...



相关问题 更多 >

    热门问题