我正在使用Django创建一个Rest应用程序
我正在进行单元测试我的应用程序,而不是做coverage source=="." manage.py test myapp --settings="mycustomsettings"
我决定创建一个脚本,可以启动我的测试并使用自定义配置文件和覆盖结果运行它们。
这是我的树:
|-- apps
| |-- __init__.py
| |-- me_api
| |-- me_auth
| |-- me_core
| |-- me_import
| `-- me_payment
|-- manage.py
|-- settings.py
|-- settings.pyc
|-- tests
| |-- coveragerunner.py
| |-- geodjango.db
| |-- __init__.py
| |-- local_settings.py
| `-- settings.py
|-- urls.py
`-- urls.pyc
我想测试应用/文件夹中的应用。 这是我的代码(在tests / coveragerunner.py中)
import os
import sys
from coverage import coverage
sys.path.append(os.path.join(os.path.dirname(__file__), "../"))
os.environ['DJANGO_SETTINGS_MODULE'] = 'tests.settings'
def main():
"""
Run tests and generates a coverage report.
"""
cov = coverage()
cov.erase()
cov.start()
from django.conf import settings
from django.test.utils import get_runner
TestRunner = get_runner(settings)
test_runner = TestRunner()
failures = test_runner.run_tests(['me_api'])
cov.stop()
if __name__ == '__main__':
main()
我正在使用geodjango.db这是一个空间数据库作为测试的默认数据库。 我的脚本采用django的设置但是当我运行它时,似乎数据库是空的。我没有自己同步数据库。
DatabaseError: no such table: me_auth_emailuser
有没有办法告诉django在运行测试之前同步数据库,或者我做错了什么?感谢。
PS:当我使用manager.py时,数据库没有问题。 (即使使用了spaceite db和不同的设置源)
答案 0 :(得分:0)
快速而肮脏的解决方案如下: