我想要什么
我想为我的 Python 项目创建一组基准。当我引入新代码时,我希望看到这些基准测试的性能发生变化。我想以与测试 Python 相同的方式执行此操作,方法是运行 nosetests
之类的实用程序命令并获得格式良好的读数。
我喜欢 Nose 测试
nosetests
工具通过在我的目录结构中搜索任何名为 test_foo.py
的函数来工作,并运行包含在其中的所有函数 test_bar()
.它运行所有这些函数并打印出它们是否引发了异常。
我想要类似的搜索所有文件 bench_foo.py
并运行所有包含的函数 bench_bar()
并报告它们的运行时间。
问题
有这样的工具吗?
如果不是,有哪些好的起点?一些 nose
来源是否适合这个?
最佳答案
nosetests
可以运行任何类型的测试,因此您可以决定它们是测试功能、输入/输出有效性等,还是性能或分析(或您想要的任何其他内容)。 The Python Profiler是一个很棒的工具,它随您的 Python 安装一起提供。
import unittest
import cProfile
class ProfileTest(unittest.TestCase):
test_run_profiler:
cProfile.run('foo(bar)')
cProfile.run('baz(bar)')
您只需在测试中添加一行,或者为您想要分析的所有调用在测试用例中添加一个测试,并且您的主要源代码不会被测试代码污染。
如果您只想计算执行时间而不是所有分析信息,timeit是另一个有用的工具。
关于像 nosetests 这样的 Python 基准测试工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19209996/