cucumber 0.14.2

Cucumber testing framework for Rust, with async support. Fully native, no external test runners or dependencies.
Documentation
[package]
name = "cucumber"
version = "0.14.2"
edition = "2021"
rust-version = "1.62"
description = """\
    Cucumber testing framework for Rust, with async support. \
    Fully native, no external test runners or dependencies.\
    """
license = "MIT OR Apache-2.0"
authors = [
    "Brendan Molloy <brendan@bbqsrc.net>",
    "Ilya Solovyiov <ilya.solovyiov@gmail.com>",
    "Kai Ren <tyranron@gmail.com>",
]
documentation = "https://docs.rs/cucumber"
homepage = "https://github.com/cucumber-rs/cucumber"
repository = "https://github.com/cucumber-rs/cucumber"
readme = "README.md"
categories = ["asynchronous", "development-tools::testing"]
keywords = ["cucumber", "testing", "bdd", "atdd", "async"]
include = ["/src/", "/tests/after_hook.rs", "/tests/json.rs", "/tests/junit.rs", "/tests/libtest.rs", "/tests/retry.rs", "/tests/wait.rs", "/LICENSE-*", "/README.md", "/CHANGELOG.md"]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[features]
default = ["macros"]
# Enables compatibility with Rust libtest (like outputting in its JSON format).
libtest = ["dep:serde", "dep:serde_json", "timestamps"]
# Enables step attributes and auto-wiring.
macros = ["dep:anyhow", "dep:cucumber-codegen", "dep:cucumber-expressions", "dep:inventory"]
# Enables support for outputting in Cucumber JSON format.
output-json = ["dep:Inflector", "dep:serde", "dep:serde_json", "timestamps"]
# Enables support for outputting JUnit XML report.
output-junit = ["dep:junit-report", "timestamps"]
# Enables timestamps collecting for all events.
timestamps = []

[dependencies]
anyhow = { version = "1.0.58", optional = true }
async-trait = "0.1.43"
atty = "0.2.14"
clap = { version = "3.0", features = ["derive"] }
console = "0.15"
derive_more = { version = "0.99.17", features = ["as_ref", "deref", "deref_mut", "display", "error", "from", "into"], default_features = false }
drain_filter_polyfill = "0.1.2"
either = "1.6"
futures = "0.3.17"
gherkin = "0.12"
globwalk = "0.8.1"
humantime = "2.1"
itertools = "0.10"
linked-hash-map = "0.5.3"
once_cell = "1.8"
regex = "1.5.5"
sealed = "0.4"

# "macros" feature dependencies.
cucumber-codegen = { version = "0.14", path = "./codegen", optional = true }
cucumber-expressions = { version = "0.2.1", features = ["into-regex"], optional = true }
inventory = { version = "0.3", optional = true }

# "output-json" and/or "libtest" features dependencies.
serde = { version = "1.0.103", features = ["derive"], optional = true }
serde_json = { version = "1.0.18", optional = true }
Inflector = { version = "0.11", default-features = false, optional = true }

# "output-junit" feature dependencies.
junit-report = { version = "0.8", optional = true }

[dev-dependencies]
derive_more = "0.99.17"
humantime = "2.1"
once_cell = "1.13"
tempfile = "3.2"
tokio = { version = "1.12", features = ["macros", "rt-multi-thread", "sync", "time"] }

[[test]]
name = "after_hook"
harness = false

[[test]]
name = "json"
required-features = ["output-json"]
harness = false

[[test]]
name = "junit"
required-features = ["output-junit"]
harness = false

[[test]]
name = "libtest"
required-features = ["libtest"]
harness = false

[[test]]
name = "retry"
harness = false

[[test]]
name = "wait"
required-features = ["libtest"]
harness = false

[workspace]
members = ["book/tests", "codegen"]