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

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在终端上运行这个程序,我得到了一个很好的测试输出,它有一个随着时间推移而更新的进度条。
但是,如果我试图在PyCharm中使用pytest配置(并将-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的奇特测试概述:
测试.py
import os

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

最佳答案

我也有同样的问题。只要安装“progressbar2”lib就可以了

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

10-16 03:12