2011-05-30 47 views
2

我想爲Google App Engine項目運行本地Django單元測試。 GAE最近收到了一些python unit testing utilities,它們允許創建樁的例如memcache,數據存儲,任務隊列等。本地Django單元測試存根與Google App引擎

我希望能夠使用Django的單元測試框架。我首先想到的是重載DjangoTestSuiteRunner做每個測試用例如下:

#  setUp 
self.testbed = testbed.Testbed() 
# Then activate the testbed, which prepares the service stubs for use. 
self.testbed.activate() 
# Next, declare which service stubs you want to use. 
self.testbed.init_datastore_v3_stub() 
self.testbed.init_memcache_stub() 

# ... after tests: 
# 
#  Teardown 
self.testbed.deactivate() 

我想知道是否有人試圖用可以從命令運行新的單元測試運行Django的測試框架GAE線路,如果有的話,他們遇到了什麼陷阱。例如,調用Django的django.test.utils.setup_test_environmentteardown_test_environment有什麼問題嗎?還會出現其他什麼問題?

順便提一句,我沒有使用任何Django-GAE助手,如google-app-engine-django

謝謝您的閱讀。

回答

1

只是想提一提:標準的Django單元測試工作非常不錯,我用django-nonrelGAE Test Bed,包括任務隊列,內存緩存,等等。我認爲這是你提到的相同的Python單元測試代碼。

+0

謝謝,Oleksiy。順便說一下,我認爲可能會導致問題的代碼在這裏(特別是數據庫問題):https://code.djangoproject.com/browser/django/trunk/django/test/testcases.py – 2011-06-01 12:09:34

+0

它看起來像[GAE測試平臺](https://github.com/jgeewax/gaetestbed)正在成爲官方Python App Engine SDK的一部分。它與您提到的GAE本地測試應用相同。我所要做的就是在我的'test.py'中使用'TaskQueueTestCase'作爲基類,它爲我完成了所有'setUp'魔術。 – Oleksiy 2011-06-01 15:59:43