Skip to main content

Cucumber logo
Cucumber Compatibility Kit

Test data for validating compatibility of a Cucumber implementation

npm build backers sponsors build

The CCK (Cucumber Compatibility Kit) is a set of features and messages. It aims to validate an implementation of the Cucumber Messages protocol.

Overview

This kit (package) consists of a set of features, miscellaneous files, and messages:

  • Each area will contain one feature, which, once executed, will emit an exhaustive set of messages as specified by the protocol.
  • Some of these areas may "also" require miscellaneous files to be used when testing functions such as attaching images or documents or reading data from files.
  • Each area will contain a set of messages - serialised as a single .ndjson file.

This is the reference for the CCK: a given feature from the kit, when executed using any dedicated step definitions, must emit the exact corresponding messages.

Installation and Usage

Available as cucumber-compatibility-kit on PyPI.

pip install cucumber-compatibility-kit

The compatibility kit packages gherkin files within a features/ directory, that can be accessed over a Python interface.

>>> from cucumber_compatibility_kit import CompatibilityKit
>>> cck = CompatibilityKit()

# Access all samples paths containing feature files
>>> cck.gherkin()
[Path('/path/to/features/ambiguous'), ..., Path('/path/to/features/unused-steps')]

# Access the samples path for a feature code
>>> cck.feature_code_for("ambiguous")
Path('/path/to/features/ambiguous')

# Directory contains a feature file
>>> from pathlib import Path
>>> cck.(Path('/path/to/features/ambiguous'))
True

More detailed documentation will be defined (#193).

More Info

The Cucumber Compatibility Kit is part of the development tools of Cucumber. It helps ensure that all implementations are properly supporting our internal protocol and are compatible (and consistent) with each other and our common tools like the html-formatter.

It can be a valuable tool if you are developing integration with Cucumber or your own implementation of it.

Join us on github/cucumber/compatibility-kit for more help if needed.

You can also take a look at cucumber-ruby to see how the kit is used in Ruby.

Development

Before building this project locally, the samples must be copied from the devkit.

cd ../devkit
npm ci && npm run copy-to:python
cd ../python

Release files for cucumber-compatibility-kit 31.0.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 cucumber-compatibility-kit 31.0.0
File Size Uploaded
cucumber_compatibility_kit-31.0.0.tar.gz 83.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cucumber-compatibility-kit 31.0.0
File Interpreter ABI Platform
cucumber_compatibility_kit-31.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 246.9 kB

Release files / cucumber_compatibility_kit-31.0.0.tar.gz

Download URL cucumber_compatibility_kit-31.0.0.tar.gz
Size 83.4 kB
Tags Source
SHA-256 checksum
How to use checksums
85fb8d587302581b23a73850eceabd43d5369bd80e0020d639d14932801121ac
BLAKE2b-256 checksum
How to use checksums
0c3a0052c9131a01100a60644109a82bc37b7974d51f6cc0d3f11783a820a023
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / cucumber_compatibility_kit-31.0.0-py3-none-any.whl

Download URL cucumber_compatibility_kit-31.0.0-py3-none-any.whl
Size 163.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b250002b931a8a0b584438f6210a86e354d6ea7b864518f7084fcc99fb8fb227
BLAKE2b-256 checksum
How to use checksums
930b716f42fac00c745f641feabab62db171613969855bf2858bce092f3da837
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

31.0.0 This release

2 release files

29.2.2

2 release files

29.2.1

2 release files

29.2.0

2 release files

29.1.4

2 release files

29.1.3

2 release files

29.1.2

2 release files

29.1.1

2 release files

29.1.0

2 release files

28.0.0

2 release files

27.0.0

2 release files

26.0.0

2 release files

25.0.0

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