2010-04-15 93 views
6

我正在使用python单元测试模块。我想知道有没有在每两个测试用例之间添加一些延迟?因为我的单元测试只是提出http请求,我猜服务器可能会阻止来自同一个ip的频繁请求。Python单元测试。如何在测试用例之间添加睡眠时间?

+2

一个测试,取决于一个真正的HTTP服务器并不是大多数人所称的单元测试。通常对于单元测试来说,你可以模拟服务器的行为,所以你不需要依赖你需要休眠的地方。 尽管知道如何做这些以编写集成测试仍然很有用。 – 2010-04-15 19:55:40

回答

11

把睡眠的你TestCase

class ExampleTestCase(unittest.TestCase): 
    def setUp(self): 
     pass 

    def tearDown(self): 
     time.sleep(1) # sleep time in seconds 

tearDown方法这将是TestCase

编辑内的每一个测试后执行内部:添加setUp因为documentation似乎或许表明您可以没有一个tearDown,但它不清楚

+0

只是为了澄清,我在'tearDown'而不是'setUp'中做了这个,因为它说“之间”,这自动让我觉得第一个立即运行(在这种情况下不清楚)是可取的。如果第一次测试之前或之后的延迟没有关系,将其放在'setUp'中并将'tearDown'离开将会很好。 – 2010-04-15 19:44:20

+0

这工作。非常感谢你 – zsong 2010-04-15 19:48:11

1
import time 
time.sleep(2.5) # sleeps for 2.5 seconds 

您可能想考虑使延迟为x和y之间的随机值。

+0

你的意思是我必须在每个测试用例之后放置它?是否有任何通用设置可以用来实现相同的功能? – zsong 2010-04-15 19:27:36

+0

很难说没有看到你的代码......但你可能会让所有的测试用例都继承自一个通用的测试用例,它提供了一个'def setUp(self):'方法来完成'time.sleep'调用。 – ChristopheD 2010-04-15 19:34:32