Skip to content

DART

Test the things unit tests can't reach.

Unit tests prove your functions work. DART proves your system works — that the service actually starts on a clean machine, that the config you ship parses where it lands, that the firewall rule really blocks the port, that the cluster still agrees after a node reboots.

You describe the environment and the assertions in YAML; DART builds the environment (containers, VMs, or remote hosts), runs the checks, tears everything down, and returns a CI-friendly exit code with a JUnit report.

📖 Documentation — guides, every test and step type, and the full evaluation reference.

suite: my service works
nodes:
- name: box
type: docker
options: { image: myservice:latest }
tests:
- name: the binary runs
node: box
type: execute
options:
command: /usr/local/bin/myservice --version
evaluate:
exit_code: 0
regex: "v[0-9]+\\.[0-9]+"

Real environments

Containers, VMs, and remote hosts — built, tested, and torn down by the suite itself. Cleanup runs even when a test fails.

Assertions unit tests can't make

Survive a real reboot, wait for a cluster to converge, prove a firewall rule blocks a port, catch config drift across a fleet.

Built for CI

JUnit and JSON reports, meaningful exit codes, tag filtering, and --check to validate a suite without touching infrastructure.

Declarative YAML

Nodes describe where things run, tests describe what must be true, and evaluate defines what true means.