python - 如何让 PyC​​harm 在运行 pytest 时显示进度条?

标签 python pycharm pytest

我使用 pytest 并且有一个测试需要很长时间。 所以我添加了一个进度条 progressbar2 .

import progressbar
from time import sleep


def test_progressbar_bug():
    with progressbar.ProgressBar() as bar:
        for i in bar(range(10)):
            sleep(1)

在终端中使用 pytest -s 运行它会给我一个很好的测试输出,其中的进度条会随着时间的推移而更新。

但是,如果我尝试使用 pytest 配置(和 -s 作为选项)从 PyCharm 中运行它,我只会得到一个空输出。 只有在测试完成后才会出现完成进度条。

我还尝试使用 sys.stdout 创建我自己的进度显示,但在 PyCharm 的集成 pytest 中没有任何成功。

from time import sleep
import sys


def test_progress_bug():
    for i in range(10):
        sys.stdout.write("\rProgress: %3d" % (i * 100 / 10.) + "%")
        sys.stdout.flush()
        sleep(1)

在 PyCharm 中运行 pytests 时,如何显示显示单个测试进度的进度条?

编辑: 我不太喜欢我当前的解决方法——将其作为普通的 python 配置运行——因为我没有得到 PyCharm 的精美测试概述:

测试.py

import os

if __name__ == "__main__":
    os.system("pytest -s")

最佳答案

我遇到了同样的问题。只需安装“progressbar2”库即可运行

关于python - 如何让 PyC​​harm 在运行 pytest 时显示进度条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42838336/

相关文章:

python - 创建与 pytest.mark.parametrize 兼容的装饰器

python - 玩刮刀空响应

python - Luhn 公式不适用于不同的输入

python - 在 Pycharm 2016.3 中安装 pip

pycharm - 在 pycharm pytest 插件中使用特定参数值运行测试

python - 如何访问参数化 pytest 测试中使用的括号中的字符串?

python - 将 nltk 绘制的解析树保存到图像文件

Python shell 在同一虚拟环境中同一台机器的不同位置上的工作方式不同

python - 在 PyCharm 中将 python 2 代码转换为 3

python - Pycharm - 中断任何异常但忽略 StopIteration 和 ExitGenerator