- Timeline-based execution - Actions execute at specific game ticks
- Tick control - Uses
/tick freezeand/tick stepfor deterministic testing - JSON test specification - No Rust knowledge required to write tests
- One test = one JSON file - Simple organization
- Directory support - Run single files or entire directories (with
--recursive)
- setblock - Place individual blocks
- fill - Fill regions with blocks
- assert_block - Verify block type at position
- assert_block_state - Verify block properties (e.g., fence connections, lever state)
- Automatic cleanup - Optional before/after test area clearing
- Test isolation - Each test has its own cleanup zone
- Progress tracking - Visual feedback with colored output
- Test summary - Clear pass/fail reporting
- Offline mode - No Microsoft account required
- Auto-reconnect - Handles connection issues gracefully
- World state tracking - Reads block states from server
- Command execution - Runs
/setblock,/fill,/tickcommands - Operator support - Works with server OP permissions
- Colored terminal output - Green checkmarks, red X's, blue arrows
- Timeline visualization - Shows tick-by-tick execution
- Detailed errors - Shows expected vs actual values
- Test statistics - Counts passed/failed assertions
- basic_placement.json - Simple block placement
- fence_connects_to_block.json - Fence connection mechanics
- fence_to_fence.json - Fence-to-fence connections
- lever_basic.json - Redstone lever state changes
- water_source.json - Water source blocks
All tests include cleanup zones and pass successfully!
- Language: Rust 2024 edition (nightly)
- Bot Framework: Azalea (latest from GitHub)
- Async Runtime: Tokio
- CLI: Clap v4
- Serialization: Serde + serde_json
- Fast execution - Only steps through required ticks
- Minimal waits - 100-200ms delays for server updates
- Parallel capable - Can run multiple bots (future feature)
- Minecraft: 1.21.10+
- Server: Vanilla, Paper, Spigot (with online-mode=false)
- Platform: Linux, macOS, Windows
# Single test
cargo run -- example_tests/basic_placement.json --server localhost:25565
# All tests in directory
cargo run -- example_tests/ --server localhost:25565
# Recursive test discovery
cargo run -- example_tests/ --server localhost:25565 --recursive- Deterministic - Same test always produces same results
- Fast - No waiting for real-time game ticks
- Precise - Tests exact game tick when changes occur
- Clean - Automatic cleanup prevents test interference
- Simple - JSON tests are easy to read and write
- Extensible - Easy to add new test actions
5/5 tests passing ✅
- ✅ Basic block placement
- ✅ Fence connects to solid block
- ✅ Fence connects to another fence
- ✅ Lever state changes
- ✅ Water source block detection
100% pass rate!