Skip to main content

pytest-big-dill

The pytest plugin for Big Dill — tooling for pytest-bdd that treats the feature file as the specification.

pip install pytest-big-dill

It registers with pytest automatically. Install it into the environment your tests run in.

What it does

  • Feature metadata — attaches the .feature path, scenario name, tags and scenario line to each collected pytest-bdd item, so a host can present tests grouped by feature file rather than by Python module.
  • Custom scenario names — name outline rows something meaningful ([E01]) rather than a concatenation of parameter values.
  • Custom statuses — report your own outcome strings (waiting, knownError) for a host to map onto its own test states.
  • Linting — pytest --bdd-lint statically checks feature files: typed step parameter validation, plus any rules you add.
  • Reporting — sends discovery and execution payloads to a host over a local pipe when one is listening, and is inert otherwise.

Where this fits

pytest-big-dill this package — required; it is what knows about your scenarios
big-dill the VS Code extension
@nokout/big-dill-core the headless engine the extension is built on

Useful on its own as a CI lint gate; the editor experience needs the extension too.

Hooks

Implement any of these in your conftest.py:

def pytest_big_dill_test_name(scenario_name, example_params, feature_name, feature_path):
    """A display name for a scenario, or None to keep the default."""
    if example_params.get("id"):
        return f"{scenario_name} [{example_params['id']}]"
    return None


def pytest_big_dill_custom_status(report, config):
    """A custom status string for a result, or None."""
    if getattr(report, "wasxfail", None):
        return "knownError"
    return None

Two more add your own lint rules, each returning a list of LintDiagnostic:

from pytest_big_dill.lint_types import LintDiagnostic

def pytest_big_dill_lint_outline(scenario, examples):
    """Once per Scenario Outline during --bdd-lint."""

def pytest_big_dill_lint_scenario(scenario):
    """Per scenario, and per interpolated Examples row."""

Full reference, including typed step parameters: developer guide.

Linting

pytest --bdd-lint              # every discovered feature file
pytest --bdd-lint path.feature

Exits non-zero on any error-severity diagnostic, so it works as a CI gate.

This package contributes the runtime half of the lint story: typed step parameter validation, undefined-step detection, and whatever your own hooks add. Structural rules about the Gherkin itself — duplicate scenario names, unused Examples columns, outlines with a single row — come from the engine and are listed with everything else in the lint rules reference.

Documentation

License

MIT. See LICENSE and THIRD-PARTY-NOTICES.md.

Metadata

Release files for pytest-big-dill 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pytest-big-dill 0.1.0
File Size Uploaded
pytest_big_dill-0.1.0.tar.gz 31.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pytest-big-dill 0.1.0
File Interpreter ABI Platform
pytest_big_dill-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 52.4 kB

Release files / pytest_big_dill-0.1.0.tar.gz

Download URL pytest_big_dill-0.1.0.tar.gz
Size 31.0 kB
Tags Source
SHA-256 checksum
How to use checksums
4e25fe800579af9ea0cf2ab3564956f23c804c9985bb9df07ebe153bfffe8938
BLAKE2b-256 checksum
How to use checksums
398e5ad46b19a09ca946cbefd7bdb9e6dda0eebc2c5b9093cc39fb69d6314523
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / pytest_big_dill-0.1.0-py3-none-any.whl

Download URL pytest_big_dill-0.1.0-py3-none-any.whl
Size 21.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
12542ad0640dae7919d2017600d845f01b20d10711bcd39075e1d6accc29f823
BLAKE2b-256 checksum
How to use checksums
e98bf6ce318e5d0ad839499b3c32842aa57e8af7c89df5b918f113be65bab1b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page