Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Configuration

testaruda uses a testaruda.toml file in the project root.

# Select every test in a component when its minimum reachable confidence falls
# below this value. Default: 0.5.
confidence_threshold = 0.5

[adapters]
# Adapter used when no extension mapping matches.
default = "testaruda-adapter-rust"
# Per-response adapter deadline in milliseconds. A deadline miss kills the
# adapter's whole process group (shim chains included) and surfaces as a
# typed timeout error — a hung adapter child can never wedge exec. Default: 30000.
# timeout_ms = 30000

[adapters.extensions]
# Adapter binaries must be on PATH or specified with absolute paths.
".rs" = "testaruda-adapter-rust"
".py" = "testaruda-adapter-python"
".jl" = "testaruda-adapter-julia"
".ts" = "testaruda-adapter-typescript"
".tsx" = "testaruda-adapter-typescript"
".mts" = "testaruda-adapter-typescript"
".cts" = "testaruda-adapter-typescript"
".clj" = "testaruda-adapter-clojure"
".cljs" = "testaruda-adapter-clojure"
".cljc" = "testaruda-adapter-clojure"
".cs" = "titi testaruda-adapter"         # command string: shell-split into (titi, testaruda-adapter)
".fs" = "titi testaruda-adapter"         # see TIA-ADAPT-024
".vb" = "titi testaruda-adapter"
".csproj" = "titi testaruda-adapter"
".sln" = "titi testaruda-adapter"
".slnx" = "titi testaruda-adapter"

[must_run]
# Map a changed-path glob to test node IDs that must run.
"ci/*" = ["ci-contract-tests"]
".github/**" = ["workflow-tests"]

[periodic_full_run]
# Hours between mandatory full-suite runs. Zero disables the trigger.
interval_hours = 168

[environment]
# Scope runtime observations to this named environment.
name = "default"

[discover]
# Directory or file names excluded from adapter discovery walks.
exclude = ["target", ".git", "node_modules", ".venv", "venv",
           "__pycache__", ".mypy_cache", ".pytest_cache",
           "build", "dist", ".tox"]

The example shows every supported setting. testaruda init writes the adapter and discovery sections, selecting a default adapter from project markers such as Cargo.toml, pyproject.toml, or Project.toml; omitted sections retain the defaults below. If the file is absent, testaruda uses in-memory defaults. The store location is fixed at .testaruda/; it is not currently configurable.

Adapters

Rust and Python adapters are installed with testaruda. The Julia adapter is provided by Testimonial.jl; see Getting Started for installation.

The Julia adapter discovers @testitem tests (ReTestItems/TestItems.jl) and @testset blocks (Base.Test). In a project that mixes @testitem with plain @test blocks, both the @testitem and @testset tests are available for selection. For files with no test blocks, a file-level fallback is used.

.NET adapter (titi)

The .NET adapter is provided by titi. Unlike the language-native adapters, titi is invoked through a multi-token command string: titi testaruda-adapter. This is configured by setting the adapter binary to "titi testaruda-adapter" in the extension mapping. testaruda’s shell-split infrastructure (TIA-ADAPT-024) automatically splits the command string into the binary (titi) and its argument (testaruda-adapter).

[adapters.extensions]".cs" = "titi testaruda-adapter"

When titi is not on PATH, testaruda falls back to full-suite selection per TIA-ADAPT-012. The .NET adapter is opt-in — no automatic detection is attempted.

Defaults

SettingDefault
confidence_threshold0.5
adapters.defaulttestaruda-adapter-rust when no project marker is detected
periodic_full_run.interval_hours0 (disabled)
environment.namedefault
discover.excludeThe list shown above
must_runNo rules