用于Google App Engine的本地Django单元测试存根

2 投票
1 回答
760 浏览
提问于 2025-04-16 18:36

我想在本地运行一个Django项目的单元测试,这个项目是为Google App Engine(GAE)做的。最近,GAE推出了一些python单元测试工具,这些工具可以帮助我们创建一些模拟功能,比如memcache、数据存储和任务队列等等。

我希望能使用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()

我想知道有没有其他人尝试过在GAE上使用新的命令行单元测试来运行Django的测试框架,如果有的话,他们遇到了什么问题。例如,调用Django的django.test.utils.setup_test_environmentteardown_test_environment时会不会有什么问题?还有其他可能出现的问题吗?

顺便说一下,我没有使用任何Django-GAE的辅助工具,比如google-app-engine-django

感谢你的阅读。

1 个回答

1

我想提一下:标准的Django单元测试在我使用django-nonrelGAE Test Bed的时候效果非常好,包括任务队列、内存缓存等等。我觉得这和你提到的Python单元测试代码是一样的。

撰写回答