database - Custom coverage test runner doesn't create DB -


i'm using django create rest application.
i'm working on unit testing application , instead of doing coverage source=="." manage.py test myapp --settings="mycustomsettings" decided create script can start tests , run them custom conf file , coverage result. here tree :

|-- 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 

i want test apps in apps/ folder. here code (in tests/coveragerunner.py)

import os import sys coverage import coverage  sys.path.append(os.path.join(os.path.dirname(__file__), "../")) os.environ['django_settings_module'] = 'tests.settings'  def main():     """     run tests , generates coverage report.     """     cov = coverage()     cov.erase()     cov.start()      django.conf import settings     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() 

i'm using geodjango.db spatialite db default db tests. script takes settings django when run it, seems database empty. doesn't sync db on own.

databaseerror: no such table: me_auth_emailuser 

is there way can tell django sync db before running tests or maybe did wrong ? thanks.

ps : when used manager.py there no problem db. (even spatialite db , different settings source)

a quick , dirty solution goes follows:

  1. set database engine sqlite, non-tests.
  2. make syncdb create template test database.
  3. now tests should work.
  4. don't forget set database engine postgesql.

Comments

Popular posts from this blog

How to mention the localhost in android -

php - Calling a template part from a post -