如何在Pytest中查找整个测试套件完成所需的时间

4

我想知道整个测试套件执行所花费的时间。在Pytest框架中如何获取。我可以使用pytest <filename> --durations=0命令获取每个测试用例的执行结果。但是,如何获取整个测试套件的执行时间呢?

2个回答

2

使用pytest-sugar

pip install pytest-sugar

安装后运行你的测试,完成测试后会得到类似于Results (10.00s)的结果。


1
谢谢。我已经能够得到它了。但是,我如何单独获取每个测试套件的执行时间呢?比如说,我有三个测试套件,test_a、test_b和test_c。我想要获取每个测试套件的执行时间,而不是整个结果。 - Vidya
在这种情况下,您应该使用类似 pytest --durations=3 的东西。 - Nithin Mohan
1
pytest --duratoions=3会列出最慢的3个测试用例/持续时间。但是,我想要获取执行每个测试套件所需的时间。 - Vidya
这取决于您所说的集成测试是什么意思。如果您不熟悉数据库集成/模拟和其他测试方面的知识,请查看pytest官方文档https://docs.pytest.org/en/latest/contents.html,并查看此教程https://djangostars.com/blog/django-pytest-testing/。这些可能会帮助您更好地理解。 - Nithin Mohan
让我们在聊天中继续这个讨论 - Nithin Mohan
显示剩余5条评论

0

虽然这不是一个PyTest的解决方案...

你可能可以自己制作一个计时器!这是我之前做的一个:

from time import time as t

class Timer:

    def __init__(self) : self.tstart, self.tend = None, None

    def start(self) : self.tstart = t()
    def end(self) : self.tend = t()
    def getDis(self) : return self.tend - self.tstart

你可以像这样使用它:

    n = Timer()
    n.start()

    # something you want to do

    n.end()

    print (n.getDis()) # gets the distance between the start and finish

当测量一些非常快的东西时,例如几个import语句,它可以打印出0.00


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接