Python 禁用每项测试”;圆点;在测试pying时

Python 禁用每项测试”;圆点;在测试pying时,python,terminal,pytest,Python,Terminal,Pytest,我已经用大约10^5个测试参数化了测试套件。我正在调试引发的错误,即使用-x标志。像这样: pytest tests.py -x 这里的问题是,该命令使终端与每个测试对应的混乱。这是不需要的(因为我没有任何xfaild或其他东西-仅通过或不通过;以及由于测试的数量): 如何禁用此“点”并只留下进度条?也许有插件?尝试了-q但圆点仍在打印。您可以在conftest.py中实现挂钩。它返回元组结果类别、简短字母和详细单词 def pytest_report_teststatus(report, c

我已经用大约10^5个测试参数化了测试套件。我正在调试引发的错误,即使用
-x
标志。像这样:

pytest tests.py -x
这里的问题是,该命令使终端与每个测试对应的
混乱。这是不需要的(因为我没有任何xfaild或其他东西-仅通过或不通过;以及由于测试的数量):

如何禁用此“点”并只留下进度条?也许有插件?尝试了
-q
但圆点仍在打印。

您可以在
conftest.py
中实现挂钩。它返回元组结果类别、简短字母和详细单词

def pytest_report_teststatus(report, config):
    if report.passed and report.when == "call":
        return report.outcome, "", report.outcome.upper()

每次测试调用钩子3次,并报告
。当
设置为
“设置”
“调用”
“拆卸”
。如果测试通过了
“call”
阶段,则上面的回调将短字母设置为空字符串。

通常情况下,它可以工作。但是这里有2条注释:如果安装了修改输出的插件,如
pytest sugar
,则必须禁用该插件才能使该方法工作-
-p no:sugar
。第二个——这个钩子还“禁用”了一个不需要的进度条,但我想这可能需要调整才能工作。
def pytest_report_teststatus(report, config):
    if report.passed and report.when == "call":
        return report.outcome, "", report.outcome.upper()