像 nosetests 这样的 Python 基准测试工具?

标签 python testing benchmarking nosetests

我想要什么

我想为我的 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/

相关文章:

python - 查询 panda df 以过滤列不是 Nan 的行

python - 模板语法错误 : 'if' statement improperly formatted

maven - Mule 中的部署后集成测试

javascript - 我们可以用 ES6 模板替换现有的 JS 模板解决方案吗?

Apache 基准 : fails with lengthy custom header for authorization

python - Scrapy - 获取 Javascript 变量的值

python - 如何在 Pandas 的列中间添加字符串

testing - Selenium 发送文本

testing - UI 级别测试和 API 级别测试有什么区别?

clojure - 如何对 Clojure 中的函数进行基准测试?