# Test

> Run kotatsu test suites. Optional args = suite (unit | integration | all, default all) and cmake preset for unit tests (default `debug`). Runs in a forked context — test output stays out of the main conversation; only a digest returns.

- Skill: `clice-io/test-2` (Agent Skill)
- Install (CLI): `npx skillmds@latest add clice-io/test-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/clice-io/test-2/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: clice-io (https://skillmd.com/u/clice-io)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/clice-io/test-2

---


Run the requested suites (default: all).

- Unit tests: `pixi run test [preset]` — builds the preset, then runs ctest, which invokes `unit_tests` from the repo root with `--snapshot-dir=tests/snapshots` (both are required for snapshot tests; ctest handles them for you).
- Integration tests (LSP stub server, pytest): `pixi run integration-test` — drives the `lsp_stub_server` binary from the `debug` tree (override with `LSP_STUB_SERVER`). If the stub server is missing entirely, pytest skips the whole suite — a skipped suite is a failure to report, never a pass.

Filtering unit tests means invoking the binary directly — replicate what ctest does (repo root, snapshot dir) and add the filter:

```bash
./build/<preset>/unit_tests --snapshot-dir=tests/snapshots --test-filter=Suite.Case
```

(`Suite.*` and bare positional patterns also work.) Rerun a single integration test with `pixi run pytest tests/integration/test_foo.py -v -k <name>` — always through pixi; the host `pytest`/deps are not the project's.

Rules:

- This skill runs and reports — nothing else. Never fix code or tests from here, never skip or weaken anything, never pass `--update-snapshots` (snapshot updates are a deliberate act in the main conversation).
- When running a binary directly, build the preset first (the build skill); a stale `unit_tests` silently tests old code, and so does a stale `lsp_stub_server`.

Report back, per suite: pass/fail and counts. For each failure: test name, `file:line`, the assertion message or snapshot-diff excerpt (trimmed), and the exact filter command to reproduce it.

