PyTest Molecule Plugin :: auto detects and runs molecule tests
This plugin enables pytest discovery of all
molecule.yml files inside the
codebase and runs them as pytest tests.
Once you install pytest-molecule you should be able to just run
order to run molecule on all roles and scenarios.
Optionally you can define
MOLECULE_OPTS for passing extra parameters to
each molecule call.
Discovered tests do have molecule
platforms added as
markers, so you can selectively limit which test types to run:
# Lists all tests that uses docker $ pytest --collect-only -m docker # Runs scenarios with platform named centos7 and delegated driver: $ pytest -m delegated -m centos7
If the molecule scenario does not contain information about the driver, the
test associated with it gets a
Please note that at this moment molecule will run the entire scenario if the markers are platforms, this is not yet a way to limit which platforms are executed inside a specific scenario.
All tests are added the
This plugin also adds a new pytest option named
--molecule-unavailable-driver=skip which can be used to tell it what to do
when molecule drivers are not loading. Current default is
None but you
can choose marks like
Using xfail and skip markers
If you need to skip or ignore a particular scenario, just add either
skip to markers list inside its config file.
markers: - xfail # broken scenario, pytest will run it but ignore the result
$ PIP_NO_BUILD_ISOLATION=false pip install pytest-molecule
PIP_NO_BUILD_ISOLATION is needed only on ancient python distributions to
Contributions are very welcome. Tests can be run with tox, please ensure the coverage at least stays the same before you submit a pull request.
Distributed under the terms of the MIT license, "pytest-molecule" is free and open source software
If you encounter any problems, please file an issue along with a detailed description.