-
NEVER delete
~/.karatefolder - It containsuuid.txtandkarate.licfor license management. Only delete specific subdirectories like~/.karate/jre/*when needed. -
Use
./home/.karatefor development testing - The git-ignored./homefolder simulates a realistic project directory withsrc/, feature files, and a.karatesubfolder. SetKARATE_HOME=./home/.karatewhen testing.
This is a Rust CLI launcher for Karate testing framework. It:
- Downloads and manages JRE from Eclipse JustJ
- Downloads Karate JAR from GitHub releases
- Delegates runtime commands (run, mock, mcp) to the JAR via JVM
- Rust-native commands: setup, upgrade, config, jre, ext, doctor, version
- JAR-delegated commands: Everything else passes through to JVM
- JustJ pattern: Uses
justj.manifestfor dynamic JRE resolution (same as Red Hat vscode-java)
Resources (dist, jre, ext) are resolved with local override:
- If
.karate/{resource}/exists in cwd → use local - Otherwise → use global (
KARATE_HOMEor~/.karate)
This allows projects to override specific resources (e.g., local extensions) while falling back to global for others (e.g., shared JRE).
KARATE_HOME- Override default~/.karateglobal home locationNO_COLOR- Disable colored output
Always run before committing:
cargo fmt --all
cargo clippy -- -D warnings
CI will fail if formatting is incorrect or clippy warnings exist.
# Use local home for development (overrides global entirely)
KARATE_HOME=./home/.karate cargo run -- setup
KARATE_HOME=./home/.karate cargo run -- doctor
KARATE_HOME=./home/.karate cargo run -- run --help
# Test with local .karate override
mkdir -p .karate/ext
cargo run -- doctor # Shows local override active