我正在編寫一對簡單的WSGI應用程序來感受這個標準,並且我想要測試我的應用程序是否按預期工作。現在我試圖找出啓動和停止託管這些應用程序的服務器的最佳方式。運行WSGI應用程序功能測試的最佳方法?
我首先想到的是在setUp
方法來啓動從wsgiref
的SimpleServer
和關閉它在tearDown
方法。由於serve_forever
區塊,我在單獨的Thread
中完成了這項工作。不幸的是,如果我使用serve_forever
來啓動服務器,它所在的輔助線程永遠不會死亡,並且事實證明threading
沒有公開殺死Thread
的方法。
現在我使用的是這樣的事情是我在run
實施考慮服務器的Thread
:
while keep_going:
httpd.handle_request()
其中keep_going
是我在setUp
設置爲True
在我tearDown
設置爲False
的變量。
有沒有更好的方法?我希望只使用標準庫來編寫這些應用程序和測試,當我使用lib/framework時,我更好地理解了我正在抽象的東西 - 但這看起來像是一個非常麻煩的問題。
謝謝。
根據我的經驗,在WebTest上引入一個依賴(至少用於測試)是非常值得的。祝你好運! – 2010-04-13 19:48:31