[package]
edition = "2024"
rust-version = "1.88"
name = "cucumber"
version = "0.23.0"
authors = [
"Brendan Molloy <brendan@bbqsrc.net>",
"Ilya Solovyiov <ilya.solovyiov@gmail.com>",
"Kai Ren <tyranron@gmail.com>",
]
build = false
include = [
"/src/",
"/tests/json.rs",
"/tests/junit.rs",
"/tests/libtest.rs",
"/tests/tracing.rs",
"/tests/wait.rs",
"/CHANGELOG.md",
"/LICENSE-*",
"/README.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Cucumber testing framework for Rust, with async support. Fully native, no external test runners or dependencies."
homepage = "https://github.com/cucumber-rs/cucumber"
documentation = "https://docs.rs/cucumber"
readme = "README.md"
keywords = [
"cucumber",
"testing",
"bdd",
"atdd",
"async",
]
categories = [
"asynchronous",
"development-tools::testing",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/cucumber-rs/cucumber"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
default = ["macros"]
libtest = [
"dep:serde",
"dep:serde_json",
"timestamps",
]
macros = [
"dep:anyhow",
"dep:cucumber-codegen",
"dep:cucumber-expressions",
"dep:inventory",
]
output-json = [
"dep:base64",
"dep:Inflector",
"dep:mime",
"dep:serde",
"dep:serde_json",
"dep:serde_with",
"timestamps",
]
output-junit = [
"dep:junit-report",
"timestamps",
]
timestamps = []
tracing = [
"dep:crossbeam-utils",
"dep:tracing",
"dep:tracing-subscriber",
]
[lib]
name = "cucumber"
path = "src/lib.rs"
[[test]]
name = "json"
path = "tests/json.rs"
required-features = [
"output-json",
"tracing",
]
[[test]]
name = "junit"
path = "tests/junit.rs"
required-features = [
"output-junit",
"tracing",
]
[[test]]
name = "libtest"
path = "tests/libtest.rs"
required-features = ["libtest"]
[[test]]
name = "tracing"
path = "tests/tracing.rs"
harness = false
required-features = ["tracing"]
[[test]]
name = "wait"
path = "tests/wait.rs"
harness = false
required-features = ["libtest"]
[dependencies.Inflector]
version = "0.11"
optional = true
default-features = false
[dependencies.anyhow]
version = "1.0.58"
optional = true
[dependencies.base64]
version = "0.22"
optional = true
[dependencies.clap]
version = "4.3.2"
features = [
"derive",
"env",
"wrap_help",
]
[dependencies.console]
version = "0.16"
[dependencies.crossbeam-utils]
version = "0.8.14"
optional = true
[dependencies.cucumber-codegen]
version = "=0.23.0"
optional = true
[dependencies.cucumber-expressions]
version = "0.5"
features = ["into-regex"]
optional = true
[dependencies.derive_more]
version = "2.0"
features = [
"as_ref",
"debug",
"deref",
"deref_mut",
"display",
"error",
"from",
"from_str",
"into",
]
[dependencies.either]
version = "1.6"
[dependencies.futures]
version = "0.3.32"
[dependencies.gherkin]
version = "0.16"
[dependencies.globwalk]
version = "0.9"
[dependencies.humantime]
version = "2.1"
[dependencies.inventory]
version = "0.3"
optional = true
[dependencies.itertools]
version = "0.14"
[dependencies.junit-report]
version = "0.9"
optional = true
[dependencies.linked-hash-map]
version = "0.5.3"
[dependencies.mime]
version = "0.3.16"
optional = true
[dependencies.pin-project]
version = "1.0"
[dependencies.ref-cast]
version = "1.0.16"
[dependencies.regex]
version = "1.9"
[dependencies.sealed]
version = "0.6"
[dependencies.serde]
version = "1.0.157"
features = ["derive"]
optional = true
[dependencies.serde_json]
version = "1.0.18"
optional = true
[dependencies.serde_with]
version = "3.0"
features = ["macros"]
optional = true
default-features = false
[dependencies.smart-default]
version = "0.7.1"
[dependencies.tracing]
version = "0.1"
optional = true
[dependencies.tracing-subscriber]
version = "0.3.16"
optional = true
[dev-dependencies.rand]
version = "0.10"
[dev-dependencies.serial_test]
version = "3.0"
[dev-dependencies.tempfile]
version = "3.2"
[dev-dependencies.tokio]
version = "1.40"
features = [
"macros",
"rt-multi-thread",
"sync",
"time",
]