如何测试 Python 函数完成所需的时间是否少于特定时间

发布于 2024-12-12 06:05:13 字数 302 浏览 0 评论 0原文

我正在使用Python的单元测试。

我想编写一个测试来确保特定方法在特定时间之前完成。我可以通过通常计算时间戳之后时间戳之前之间的差异来做到这一点,但我开始想知道

  1. 这是否通常在TDD,如果方法/函数效率不高,则编写失败的测试,然后重构以使其更高效?
  2. Python 的单元测试有一个巧妙的方法来做到这一点吗?

I'm using Python's unittest.

I'd like to write a test that ensures a certain method completes before a certain time. I can do this by the usual calculation of the difference between timestamp after and timestamp before, but I started wondering if

  1. is this commonly done in TDD, write tests that fail if a method / function is not efficient and then refactor to make it more efficient?
  2. does Python's unittest have a slick way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

泪是无色的血 2024-12-19 06:05:13

你可以用鼻子 @timed 装饰器来完成。我用它来测试计时功能。例子:

@timed(2.1)
def test():
    func_with_timeout(timeout=2)

You can do it with nose @timed decorator. I use it for testing functions with timing. Example:

@timed(2.1)
def test():
    func_with_timeout(timeout=2)
女皇必胜 2024-12-19 06:05:13

一些公司对代码速度进行了测试,类似于回归测试,这些测试试图捕获会减慢系统速度的新代码,如果他们发现问题,您首先尝试修复新代码,使其仍然表现良好,如果您如果无法做到这一点,那么您(产品所有者)可以决定新功能是否值得。

关于 TDD:你不知道运行时间,所以不,你不能通过猜测编写测试,然后重构代码,这样它就会通过..除非你从事非常具体的事情并且有非功能性需求,就像嵌入式系统必须在 50ms 内响应......

Some companies have tests for the speed of code, sort of a regression test, these try to catch new code that slows down the system and if they catch a problem, you first try to fix the new code so it still performs well and if you are not able to do that then you (the product owner) can decide whether the new feature is worth it.

Regarding TDD: You don't know the running time, so no, you can't write a test with a guess and later refactor the code so it will pass.. unless you work on something very specific and have a non-functional requirement, like an embedded system that has to respond within 50ms...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文