Rejoining... Retrying in s Connection lost Session paused Resume failed
Ariadne User Documentation
Documentation for how to use the Ariadne platform

testing

Last updated 13 September 2026

Testing

Ariadne agents can register a test suite for a project, run it, and report structured results back in chat — without you leaving the conversation to check a CI dashboard. This is the first phase of a larger testing capability (test authoring, change-targeted runs, git watchers and auto-publishing PRs are designed but not yet built); today it covers registering, running and reviewing an existing suite.

Requirements

  • A Console or Desktop client connected to the conversation (Code mode), with a working directory pointed at the project — the test project lives on your machine or in your headless work container, not on the Ariadne server. See Code Mode & Remote Development.
  • The agent's Testing tool collection enabled (see Agents → Tool Collections).

There is no separate Testing page yet — everything happens through the agent in chat.

Registering a suite

Ask the agent to register your project, e.g. "Set up testing for this project". Behind the scenes this calls create_test_suite with a name and the project's working directory. The agent detects the test framework automatically from project markers (NUnit/xUnit .csproj, pytest.ini/pyproject.toml, package.json with Jest/Vitest) — if more than one is plausible, it asks which one you mean.

A suite optionally records a separate subject path, for cases where the tests live in a different project or repo from the code they exercise.

Listing suites

Ask "what test suites do I have?" — the agent calls list_test_suites and shows each suite's id, project path and detected framework. You'll need a suite id (or its name) to run it or fetch results.

Running tests

Ask the agent to run a suite, optionally with a filter (a test name or category). This calls run_tests, which builds the right command for the detected framework and runs it in your working directory via the connected client, then returns a summary: total / passed / failed / skipped.

A few things worth knowing:

  • Runs are capped at 270 seconds. If your suite runs longer than that, the run fails with a clear timeout message rather than hanging silently — split the run with a filter, or ask the agent to run a subset.
  • A filtered run is not evidence the whole suite passes. It's recorded as a targeted run, and the agent is expected to say so rather than imply a full green suite.
  • Full runner output (the .trx/JSON/JUnit file) is kept in blob storage, not stuffed into the conversation — the agent reads it on demand if it needs more detail than the summary gives.

Reviewing results

Ask "show me the failures from the last run" — the agent calls get_test_results, which pages through a run's results with an optional outcome filter (passed / failed / skipped / error). By default this doesn't include full per-test output; ask explicitly if you want it.

What's coming

The fuller design (see docs/design-automated-testing.md for engineering detail) covers agent-authored tests with provenance tracking and negative controls (so a generated test is proven capable of failing before it's trusted), change-targeted test selection driven by what actually changed in your repo, git watchers that trigger a run on every push, and automatic branch/PR publishing once new tests demonstrably work. None of that is available yet — today's capability is register → run → review.