Jua*_*ano 17 python unit-testing pytest
我正面临一种情况,我想确保如果一个方法被修改,它运行不需要超过X毫秒(基本上如果该功能较慢,它将减慢我们网页上的搜索结果,并且对销售产生不良影响).
我们有单元测试(特别是代码是在python下完成的,我们使用py.test),第一个想法是断言如果函数没有在小于X ms内执行,那么将测试标记为失败(或者提升一个警告).
然而,这感觉很危险(例如,并非所有计算机都具有相同的速度),而且我也不确定这是单元测试的工作.
有人遇到过类似的情况吗?对我而言,速度是一项功能,我希望确保随着代码的发展,此功能在将来不会丢失.
如果单元测试不是答案,您会推荐哪些其他替代方案?
谢谢
你可以考虑使用pytest-timeout插件开始.它目前只允许指定秒数(作为浮点数).但它可以扩展到更适应的时序,如pystone数字,所以可以测量你的计算机执行pystone基准测试的速度,可以缓存,然后你指定你的测试有多少"pystones"被允许带走.
| 归档时间: |
|
| 查看次数: |
1574 次 |
| 最近记录: |