2010-04-15 3 views
6

파이썬 단위 테스트 모듈을 사용하고 있습니다. 어쨌든 매 2 가지 테스트 케이스 사이에 지연을 추가 할 예정입니까? 내 단위 테스트는 단지 HTTP 요청을하고 있기 때문에 서버가 동일한 IP의 빈번한 요청을 차단할 수 있습니다.파이썬 단위 테스트. 테스트 케이스간에 수면 시간을 추가하는 방법은 무엇입니까?

+2

실제 라이브 HTTP 서버는 대부분의 사람들이 단위 테스트라고 부르는 것이 아닙니다. 일반적으로 단위 테스트의 경우 서버 동작을 모방하므로 절전 모드로 전환해야하는 종속성이 없습니다. 통합 테스트를 작성하려면이 작업을 수행하는 방법을 아는 것이 여전히 유용합니다. –

답변

11

이 그 TestCase

편집 내에서 모든 테스트 후 실행됩니다 TestCase

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

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

tearDown 메서드 내 잠을 넣어은 다음 documentation 아마도 당신이 할 수있는 것을 나타내는 것 때문에 setUp 추가 하나도없이 tearDown을 가지고 있지만 명확하지 않습니다.

+0

명확한 설명을 위해, "setUp"대신에 "tearDown"에서 "between"이라고 말했고, 자동적으로 첫 번째 것이 즉시 실행되는 것이 바람직하다고 생각했기 때문에 (나는이 경우 명확하지 않다). 만약 첫 번째 테스트 전후의 지연에 대해 중요하지 않다면,'setUp'에 넣고'tearDown'을 남겨두면 괜찮을 것입니다. –

+0

이 효과가 있습니다. 대단히 감사합니다. – zsong

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

지연을 x와 y 사이의 임의의 값으로 설정하는 것이 좋습니다.

+0

모든 테스트가 끝난 후에 이것을 넣어야한다는 말입니까? 같은 것을 달성하기 위해 사용할 수있는 보편적 인 설정이 있습니까? – zsong

+0

코드를 보지 않고 말하기는 어렵지만 모든 테스트 케이스는'time.sleep' 호출을하는'def setUp (self) :'메소드를 제공하는 하나의 공통 테스트 케이스에서 상속받을 수 있습니다. – ChristopheD

관련 문제