Skip to main content

A discovery plugin for Nose which relies on sane structure.

Project description

Given standard test setup, will determine which tests need to run against a given diff.

For example, say you’re working in your branch called my-new-sexy-feature, which modifies the following files:

src/foo/bar/__init__.py
src/foo/bar/baz.py
src/foo/biz.py

If you’re using a traditional test layout, we’ll automatically add the following rule for you:

tests/{path}/test_{filename}

Otherwise you can add rules using regular expression syntax in combination with the path and filename formatters.

Now if we run with the default options, nosetests --with-quickunit, it will look for tests (by default) in the following base directories:

tests/src/foo/bar/test_baz.py
tests/src/foo/test_biz.py

(It does this by analyzing the diff against master, and determining which files you’ve changed are tests, including them, and which files containing test coverage in a parallel directory.)

Config

If you want to support multiple directories for searching (let’s say you break up unittests from integration tests) you can do that as well:

::

–quickunit-rule=tests/{path}/test_{filename} –quickunit-rule=tests/{path}/{basename}/tests.py

Or, if you’d prefer, via setup.cfg:

quickunit-rule = tests/{path}/test_{filename}
                 tests/{path}/{basename}/tests.py

Rules

Rules are a combination of simple formatting a regular expressions.

The following formatted variables are available within a rule:

{path}

The base path of the filename (e.g. foo/bar)

{filename}

The filename excluding the path (e.g. baz.py)

{basename}

The filename excluding the extension (e.g. baz)

A rule is first formatted (using .format(params)) and then compiled into a regular expression on top of each changed file.

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

quickunit-0.6.0.tar.gz (6.5 kB view hashes)

Uploaded Source

Supported by

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