Master:
Develop:
Pull requests and issues are welcome!
django-jasmine integrates the Jasmine Javascript testing framework with Django. Jasmine is a behavior-driven development framework for testing your JavaScript code. It does not depend on any other JavaScript frameworks. It does not require a DOM. And it has a clean, obvious syntax so that you can easily write tests.
django-jasmine also integrates the jasmine-jquery plugin, that provides a set of custom matchers for jQuery framework and an API for handling HTML fixtures in your specs.
Installation
pip install django-jasmine
Add ‘django_jasmine’ to your settings.INSTALLED_APPS.
Add settings.JASMINE_TEST_DIRECTORY, containing the path to your javascript jasmine test files. Files.json should be in this directory and all test files should be in os.path.join(settings.JASMINE_TEST_DIRECTORY, ‘spec’) *
Makes sure you have properly defined a STATIC_URL.
Add all Javascript files (including jQuery, and any other libraries) to files.json
Add a urlconf to include(‘django_jasmine.urls’).
Visit the URL you’ve included in your urlconf to display Jasmine test results.
Add a corresponding tag from the Jasmine github repo to specify a version of Jasmine to test with. Otherwise the latest tag, currently v2.4.1, is loaded.
Jasmine is now loaded over cdn.rawgit.com. A very obvious error message will appear if Jasmine isn’t loaded correctly.
See the example_project directory for more information.
Template
If you wish to modify the jasmine index template for any reason (e.g. add a new jasmine reporter), you can create a jasmine/index.html template as follow:
{% extends "jasmine/base.html" %}
{% block jasmine_preload %}
{# If you need to do any setup before dependencies in files.json are loaded (like define app namespace) #}
{% endblock %}
{% block jasmine_extra %}
{# If you want to extend the default jasmineEnv config #}
{% endblock %}
{% block jasmine %}
{# If you wish to rewrite the whole html runner script #}
{% endblock %}
Read templates/jasmine/base.html for the default config
Fixtures
jasmine-jquery allowing to add fixtures, you can set them in os.path.join(settings.JASMINE_TEST_DIRECTORY, ‘fixtures’). Then in your spec:
jasmine.getFixtures().fixturesPath = "/jasmine/fixtures/";
loadFixtures("template.html")
Debug
If you encounter some errors that isn’t obvious to debug, you can add “django_jasmine” to your loggers.
Integration with ./manage.py tests
To do so, I recommend using EnvJasmine, and use Fabric to run EnvJasmine after running manage.py tests
Todo
Keep improving django tests
Add Growl/notifyd notifications
Add more settings for more flexibility i.e. make a symbolic constant for cdn url.
Thoroughly test fixtures and jasmine-jquery features.
Improve README.
Use a more specific pattern matcher for the version url.
Improve error message when Jasmine fails to load over cdn.
License
Copyright (c) 2010 Movity, Inc Licensed new-style BSD, also containing Jasmine, which is licensed MIT. See LICENSE file for more information.
Contributing
Please see the contributing file.
Release files for django-jasmine 0.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django-jasmine-0.5.1.tar.gz | 74.8 kB | Details |
Release files / django-jasmine-0.5.1.tar.gz
| Download URL | django-jasmine-0.5.1.tar.gz |
|---|---|
| Size | 74.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
911a50c94c50416d0effc7e66cb96deaf26d0a113c28b0bc1f44e2ecf6f43cd5
|
|
BLAKE2b-256 checksum How to use checksums |
2ee44e6cc16f9895e4187d9174c4d65c8591377565a4814391e5f1f51bdfefe9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |