如何在运行pytest时让PyCharm显示进度条?

时间:2017-03-16 15:28:28

标签: 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配置在PyCharm中运行它(并且-s作为选项),我只得到一个空输出。 只有在测试完成后才会出现完整的进度条。

我还尝试使用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的花哨测试概述:

Test.py

import os

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

1 个答案:

答案 0 :(得分:0)

我有同样的问题。只需安装“ progressbar2” lib,它将起作用