Skip to main content
Harnest owns the environment and compiled application used by every test lane. Authored tests exercise the selected ADK or LangGraph target without importing Harnest or manually loading build artifacts.

Unit tests

Run the default offline lane:
Harnest compiles the project, then collects tests/unit/test_*.py. Unit tests should not call models, MCP servers, or other networks. This is a convention, not an OS sandbox.

Smoke tests

Live runtime checks belong in tests/smoke/test_*.py and run only when selected:
The unit lane runs first. Smoke tests add a FastAPI client and a smoke fixture. Smoke tests may spend time or money and use real credentials. Run them deliberately.

Evaluations

Run eval assets after the Python tests:
ADK projects can place official EvalSet JSON files in evals/. The default business trajectory requires business calls in order but allows helper calls. Require the exact sequence with:
ADK eval files do not run for LangGraph. Put portable evaluations in unit or smoke tests.

Compile an artifact

Compile validated source into a standalone runtime directory:
Compiled directories are reproducible output. Do not edit or commit them.

CI

A minimal offline CI sequence is:
Add smoke or eval lanes only when CI has the required services and credentials. For Harnest source changes, follow Development standards.