I'm writing a Django reusable app. It's not a usual app which can be used on its own. It requires other apps to be usable just like django.contrib.admin or django-dajaxice do.
My current project tree looks like this:
django-myapp/
docs/
some.rst
docs.rst
...
myapp/
static/
myapp/
some_js_stuff.js
templatetags/
some_file.py
__init__.py
base.py
manager.py
...
unit_tests/
__init__.py
test_base.py
test_manager.py
functional_tests/
__init__.py
functional_tests.py
urls.py
README.rst
LICENSE
requirements.txt
requirements-test.txt
setup.py
...
Unit tests are easy - I'm just testing my code so I don't need complete Django environment to run them. Simple ./setup.py test
works perfectly.
Functional testing is the tricky part. I would like to use selenium so I need running dev server and this requires whole Django environment. I'm trying to use django.test.LiveServerTestCase
but with no success (It looks like there were no urls defined, setting ROOT_URLCONF
in settings
and urls
attribute in class didn't help).
Every piece of documentation I've found, every question on stackoverflow tells about testing Django apps inside Django project. And here is my question: what is the best (and working) way to run functional/integration tests of reusable app without setting up complete Django project?