Skip to main content

Nose test dependency support

Project description

## Nosetest plugin for test dependencies.

Normally tests should not depend on each other - and it should be avoided as long as possible. Optimally each test should be able to run in isolation.

However there might be rare cases or special circumstances where one would want this. For example if having very slow integration tests where redoing what test A did just to run test B would simply be too costly. Or temporarily while testing or debugging. It’s also possible that one wants some test to run first as ‘smoke tests’ such that the rest can be skipped if those tests fail.

The current implementation allows marking tests with the @depends decorator where it can be declared if the test needs to run before or after some other specific test(s).

There is also support for skipping tests based on the dependency results, thus if test B depends on test A and test A fails then B will be skipped with the reason that A failed.

Nosedep also supports running the necessary dependencies for a single test, thus if you specify to run only test B and test B depends on A; then A will run before B to satisfy that dependency.

Note that ‘before’ dependencies are treated as soft. A soft dependency will only affect the test ordering, not force inclusion. For example if we have:

def test_a:
  pass

@depends(before=test_a)
def test_b:
  pass

and run all tests they would run in the order b,a. If you specify to run only either one of them only that test would run. However changing it to:

@depends(after=test_b)
def test_a:
  pass

def test_b:
  pass

would affect the case when you specify to run only test a, since it would have to run test b first to specify the ‘after’ dependency since it’s a ‘hard’ dependency.

Finally there is prioritization support. Each test can be given an integer priority and the tests will run in order from lowest to highest. Dependencies take precedence so in total the ordering will be:

  1. All tests with a priority lower or equal to the default that are not part of any dependency chain ordered first by priority then by name.

  2. Dependency groups in order, while each dependency group is internally ordered the same as point 1.

  3. All tests with priority higher than the default that are not part of any dependency chain ordered first by priority then by name.

Default priority if not specified is 50.

Note: Currently no support for Python 2.6 and 3.2. Should work for 2.7 and 3.3+.

## Info

[![PyPI version](https://badge.fury.io/py/nosedep.svg)](https://pypi.python.org/pypi/nosedep) [![Code Health](https://landscape.io/github/Zitrax/nose-dep/master/landscape.svg?style=flat)](https://landscape.io/github/Zitrax/nose-dep/master) [![Build Status](https://travis-ci.org/Zitrax/nose-dep.svg?branch=master)](https://travis-ci.org/Zitrax/nose-dep) [![Coverage Status](https://coveralls.io/repos/Zitrax/nose-dep/badge.svg?branch=master&service=github)](https://coveralls.io/github/Zitrax/nose-dep?branch=master)

Project details


Download files

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

Source Distribution

nosedep-0.7.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

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

nosedep-0.7-py2.py3-none-any.whl (9.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file nosedep-0.7.tar.gz.

File metadata

  • Download URL: nosedep-0.7.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.10.0 pkginfo/1.2.1 requests/2.18.4 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/3.6.6

File hashes

Hashes for nosedep-0.7.tar.gz
Algorithm Hash digest
SHA256 17a90329efeb571976e4c2a9598672a57313ebdeadb70c85687127feec34de3d
MD5 27c0b8e4c7d892645c4786475a256f45
BLAKE2b-256 547b46328d9041971f84f9fb5a341a4b2eab3f4f7c94ec4c206b3ebf4317bc3c

See more details on using hashes here.

File details

Details for the file nosedep-0.7-py2.py3-none-any.whl.

File metadata

  • Download URL: nosedep-0.7-py2.py3-none-any.whl
  • Upload date:
  • Size: 9.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.10.0 pkginfo/1.2.1 requests/2.18.4 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/3.6.6

File hashes

Hashes for nosedep-0.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 1477d29aa61854bb05f782a84077280ab24183d557dc56071943548a506bcbf2
MD5 f0a3636c8f3edfa881c6af3268a35d22
BLAKE2b-256 ed947d026802854064195402e74ec8a0efcd71179df6388bada5658ae94db7d3

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