2011-05-30 36 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