Skip to main content

A unittest test loader for Jasmine tests

Project description

Jasmine integration for unittest

This package allows you to run Jasmine unit tests fully integrated with the Python standard module unittest.

The main use case is to run JavaScript tests for Python server APIs.

Quick start

To use this module, please follow these steps:

  1. Add unittest-jasmine to the tests_require parameter to setuptools.setup().

  2. Change or add the test_loader argument to setuptools.setup() to 'unittest_jasmine.SetuptoolsLoader'.

  3. Add your Jasmine specs to your test package, and make sure the file names end with spec.js.

If your project uses npm to manage dependencies, those will be automatically updated when the tests are run using npm install.

Advanced options

Pass additional options to unittest-jasmine by modifying the test_suite parameter to setuptools.setup(); append the character '|' and then the options separated by ';':

setuptools.setup(
    . . .
    test_suite='tests|option1=value1;option2={"flag":true}',
    . . .
)

The value part of an option may be either JSON or a simple string. Anything that is not parsable as JSON is treated as a simple string. A simple string is treated as a JSON string.

The following options are recognised by unittest-jasmine:

lifecycle

A module receiving notifications about the lifecycle of suites and tests. See I need to run Python code before each test or suite for more information.

spec_regex

A regular expression used to find the spec files in the test directory.

test_directory

The directory that contains the spec files. This must be an absolute path.

Any option not in this list will be passed on to the Jasmine loadConfig method.

Common tasks

My Jasmine specs are not located in the same directory as my Python tests

Override the default path to the spec files by setting the option test_directory. This must be the absolute path to the directory containing the spec files.

My Jasmine spec files do not end with spec.js

Override the regular expression used to filter spec files from the test directory by setting the option spec_regex. This is used as a regular expression to filter the files to include.

An example value is:

setuptools.setup(
    . . .
    test_suite='tests|spec_regex=.*?-test\\.js',
    . . .
)

I need to run Python code before each test or suite

Set the option lifecycle to specify a module with functions handling the setup and teardown of tests and suites.

The functions suite_setup, suite_teardown, test_setup and test_teardown, if defined, will be called with the suite or test as parameter. The functions will be called as instance methods of the respective suites and tests.

You may copy templates for these functions from .../unittest_jasmine/_setuptools.py.

An example value is:

setuptools.setup(
    . . .
    test_suite='tests|lifecycle=test._jasmine_lifecycle',
    . . .
)

I need to load Jasmine helper files

Set the option helper to a JSON encoded list of strings. The strings are interpreted by Jasmine as paths to helper files, relative to the directory containing the spec files; they must not be absolute paths.

I have specs written in CoffeeScript

To enable running tests written in CoffeeScript, first modify the option spec_regex to ensure that it also includes .coffee files, and then make sure that one of your Jasmine helper files contains the expression require("coffee-script/register"). An example value is:

setuptools.setup(
    . . .
    test_suite='tests|spec_regex=.*?spec\\.(js|coffee);helpers=["cs.js"]',
    . . .
)

Release notes

v1.0.1 - Python 3 fixes

  • Corrected dynamic method addition to work with Python 3.

  • Allow using release maker script on Python 3.

  • Build a universal wheel when making a release.

v1.0 - Initial Release

  • Initial release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

unittest_jasmine-1.0.1-py3.5.egg (17.0 kB view details)

Uploaded Egg

unittest_jasmine-1.0.1-py2.py3-none-any.whl (20.2 kB view details)

Uploaded Python 2Python 3

File details

Details for the file unittest_jasmine-1.0.1-py3.5.egg.

File metadata

File hashes

Hashes for unittest_jasmine-1.0.1-py3.5.egg
Algorithm Hash digest
SHA256 4da9f04df9d0dbdcf4c4db5e599f59b238bf0da40655ae6221273377c85e809a
MD5 e36991fff6ce78d04664e8f41dbc5835
BLAKE2b-256 d6f60535de68fc99e60e76d6e903f99d6b9c4d952304e12268627d380dfbab73

See more details on using hashes here.

File details

Details for the file unittest_jasmine-1.0.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for unittest_jasmine-1.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 7ecbdb81469e3fd494073e7b53c1505e2d8550398d3cc972b206eeab82b7febd
MD5 e6e9c8d7611ead5cfdd8d931b4ceaad8
BLAKE2b-256 3342c9158a770acb3d1febd435e65df15e49c9a76fbbc4c9fc1c97860ef2e337

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page