Skip to main content

Buildout recipe for running tests isolated at package boundaries

Project description

plone.recipe.alltests

This recipe creates a testrunner script which is suitable for running all tests in a buildout environment at once.

At least in Zope2 there are frequently test isolation problems caused by too much global state being used. Instead of fighting against these test isolation problems, this recipe provides a convenient way to run all tests on a package by package basis, provides an overall summary and exits with a combined status code for all tests runs. The latter makes it possible to use this in a buildbot environment.

Options

The options you can set in the recipes section in your buildout.cfg.

eggs

A list of packages that should be installed in the test environment. Defaults to the eggs of the [test] part, if available. By default, tests of these packages and all their dependencies will be run, unless you change the default-policy.

test-script

The file system location of a zc.recipe.testrunner test runner, which needs to be configured correctly to run all tests for all specified eggs. Defaults to bin/test.

groups

A buildout section containing a mapping of group names to package names.

default-policy

Determines whether packages should be included in the test run or excluded, by default. Set to ‘include’ (the default) to include all packages in the Python environment, or ‘exclude’ to skip all packages except those explicity included with include or include-groups.

exclude

A list of packages which should be excluded from the test runs, if default-policy is include. The values are interpreted as Python regular expressions.

exclude-groups

A list of groups which should be excluded from the test runs, if default-policy is include.

include

A list of packages which should be included in the test runs, if default-policy is exclude.

include-groups

A list of groups which should be included in the test runs, if default-policy is exclude.

package-map

An buildout section containing a mapping of distribution names to package names.

Scripts

This recipe create one script named after the recipe section.

All options are optional, so a minimal part looks like this:

[test-all]
recipe = plone.recipe.alltests

This creates a bin/test-all script that runs bin/test for all eggs (and their dependencies) specified in the [test] part.

Reporting bugs or asking questions

Please report issues and questions at: https://github.com/plone/plone.recipe.alltests/issues

Changelog

1.5.2 (2020-04-21)

Bug fixes:

  • Minor packaging updates. (#1)

1.5.1 (2018-09-27)

Fixes:

  • Fix imports when buildout was installed using pip. [davisagli]

1.5 (2015-03-21)

  • Do not fail if path for a package can not be found. [timo]

1.4 (2014-03-02)

  • Flush stdout after printing status before and after running tests.

  • Added exclude-groups and include-groups so entire package groups can be easily included or excluded from the test run.

  • Added the default-policy setting which makes it possible to exclude packages by default, unless explicitly listed in include.

1.3 - 2013-10-08

  • Make it possible to run a single test group by specifying the –group= option. This can aid with debugging test isolation problems. [davisagli]

1.2 - 2009-11-06

  • Refactor test summary somewhat to make it easier to parse. [hannosch]

  • Exclude distribute by default from the test runs. Clarify that we always run tests for all dependencies of the packages listed in the eggs option. [hannosch]

1.1 - 2009-08-19

  • Added bin/test as default for test-script option. And [test]’s eggs (if the part is available) are used if the eggs option isn’t specified explicitly. [reinout]

1.0 - 2009-08-02

  • Added support for grouping multiple packages into one test group, avoiding some of the shared test setup cost. [hannosch]

  • Added total test time to the output. [hannosch]

  • Automatically extend the test path with the package location. [hannosch]

  • Allow the use of regular expressions in the exclude list. [hannosch]

  • Initial implementation. [hannosch]

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

plone.recipe.alltests-1.5.2.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

plone.recipe.alltests-1.5.2-py2.py3-none-any.whl (6.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file plone.recipe.alltests-1.5.2.tar.gz.

File metadata

  • Download URL: plone.recipe.alltests-1.5.2.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/2.7.17

File hashes

Hashes for plone.recipe.alltests-1.5.2.tar.gz
Algorithm Hash digest
SHA256 0f0e60f3ee6759a186468cb900aa5c457f05c7ae4f801a9d4ba55bab3ccb0d05
MD5 5a6ed61a2981af6cc81e809d31c591dd
BLAKE2b-256 a1c061ec113d740f48989e9f6bdb7ff89ab1ef80de2622e890b592b375027873

See more details on using hashes here.

File details

Details for the file plone.recipe.alltests-1.5.2-py2.py3-none-any.whl.

File metadata

  • Download URL: plone.recipe.alltests-1.5.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/2.7.17

File hashes

Hashes for plone.recipe.alltests-1.5.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 bc363da8f0cbc1dac8f7e9db010b754e8860bcd87a52289e94dbecde9aa75da7
MD5 4c1f956c323dabfb4e03e6433c7523eb
BLAKE2b-256 f20b3f171a634df8e18d00c64e61b00fbee9da0cad8ac6c41b4844316504f710

See more details on using hashes here.

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