Ahm*_*hal 8 django unit-testing mongoengine
我希望能够根据我在测试模式下启动django来做条件连接().
在我的settings.py中我使用mongoengine connect()方法连接到我的数据库,但问题是如果我运行manage.py test我不想这样做
有没有什么方法可以检查settings.py是否正在从测试中导入,有些标志可能.
如果不是IN_TESTS:connect()
Gat*_*ter 14
我正在用自定义测试运行器解决这个问题.以下是我的解决方案示例:https://github.com/xintron/django-mongorunner/blob/master/mongorunner/testrunner.py
这样做的好处是可以为每个单元测试提供一个新的数据库.
class MyTestRunner(DjangoTestSuiteRunner):
mongodb_name = 'testsuite'
def setup_databases(self, **kwargs):
from mongoengine.connection import connect, disconnect
disconnect()
connect(self.mongodb_name)
print 'Creating mongo test-database ' + self.mongodb_name
return super(MyTestRunner, self).setup_databases(**kwargs)
def teardown_databases(self, old_config, **kwargs):
from mongoengine.connection import get_connection, disconnect
connection = get_connection()
connection.drop_database(self.mongodb_name)
print 'Dropping mongo test-database: ' + self.mongodb_name
disconnect()
super(MyTestRunner, self).teardown_databases(old_config, **kwargs)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5003 次 |
| 最近记录: |