Skip to main content

Linter for Gherkin feature files

Project description

CI Documentation Status PyPI PyPI - Python Version PyPI - License

gherlint

Linter for Gherkin feature files, written in Python

Install

Simply run pip install gherlint.

Linting Feature Files

gherlint comes with a command line interface. To recursively lint all feature files in a directory, run gherlint lint <path>.

Computing Metrics

gherlint can also create some metrics for you if you want to know how many features, scenarios and steps you have in your test suite. To do so, run gherlint stats <path>.

Disclaimer

gherlint is still in an early development phase. New checks will be added over time. If you want to contribute, feel free to open issues suggesting useful checkers, or open a pull request if you want to!

Roadmap

The following work items are planned for the upcoming releases:

  • V0.0.x - V0.1.0:
    • Parser and object model for feature files
    • Basic checkers to demonstrate workflow
    • Basic text based reporter
  • V0.1.x - V1.0: <-- we are here
    • Add more checkers
    • Add more output formats
    • Extend object model as necessary for checkers
    • Reach a stable interface for object model, checkers and reporters
    • Add documentation
    • Support configuration to enable/disable individual messages
  • V1.x - V2.0:
    • Implement plugin architecture to allow users to add custom checkers

CHANGELOG

V0.5.0

New checks:

  • duplicated-scenario-name
  • duplicated-feature-name
  • only-given-allowed-in-background
  • tag-could-be-on-parent

Other changes:

  • Add support for configuration from a file. The file must be in .toml format. You can include the configuration in your pyproject.toml, or if you don't use that, you can create a gherlint.toml file in the root of your project.
  • Individual messages can now be disabled in the configuration file (section: reporting, option: disable).

V0.4.0

New checks:

  • unused-parameter
  • empty-background
  • outline-could-be-a-scenario
  • consider-using-background
  • examples-outside-scenario-outline
  • duplicated-tag

Other changes:

  • unparseable-file is now issued for all nodes that offend the gherkin parser together with more error information provided by it
  • missing-parameter now clearly states what parameter is not defined in the examples
  • If gherlint patches the file contents with a forgotten # language tag the line numbers for messages are no longer shifted
  • Types of And and But steps are now inferred correctly
  • New command fix-language-tags to automatically add or fix missing or incorrect language tags
  • Rename some message codes to have a defined structure: each checker has its own hundreds digit.

V0.3.0

New checks:

  • missing-language-tag
  • wrong-language-tag
  • unparseable-file

Other changes:

  • gherlint can now automatically detect the language used and make sure that it can parse the files even without a # language token present.

V0.2.0

New checks:

  • missing-given-step
  • missing-when-step
  • missing-then-step
  • empty-scenario
  • empty-feature
  • file-has-no-feature
  • missing-parameter

Other changes:

  • Support for Background
  • Determination of step type independent of language
  • Distinction between Scenario and Scenario Outline independent of language

V0.1.0

First package in alpha status:

  • Parser and object model for feature files
  • Basic checkers to demonstrate workflow
  • Basic text based reporter

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

gherlint-0.5.0.tar.gz (16.2 kB view details)

Uploaded Source

Built Distribution

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

gherlint-0.5.0-py3-none-any.whl (22.0 kB view details)

Uploaded Python 3

File details

Details for the file gherlint-0.5.0.tar.gz.

File metadata

  • Download URL: gherlint-0.5.0.tar.gz
  • Upload date:
  • Size: 16.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gherlint-0.5.0.tar.gz
Algorithm Hash digest
SHA256 69ad21176dca442cefa57363305d7a366c6a5e7e8cfbb0eef58e4503e89b613e
MD5 7e5d5c9ba6638aa7d1a9e4b2cd6dc3cb
BLAKE2b-256 cb4589919c00214d2c267e1e78b2afca0a0ccf9d73e052dd25f4957dbd92a6ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for gherlint-0.5.0.tar.gz:

Publisher: release.yml on DudeNr33/gherlint

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gherlint-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: gherlint-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 22.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gherlint-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 da4e54748b88381ca9caa996cb199e2a3f0c2573be3b325f78d4818135df1ac7
MD5 14992036aa6a4f23418b7ef13beb04c2
BLAKE2b-256 7ee5ab51cd252d2c1f1419cf03fc0e5b85af11545cffde08d9f69ca27ebe7972

See more details on using hashes here.

Provenance

The following attestation bundles were made for gherlint-0.5.0-py3-none-any.whl:

Publisher: release.yml on DudeNr33/gherlint

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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