Beta
The logic in your database, actually tested.
Point it at a PostgreSQL database. It writes the pgTAP tests, seeds the data, runs them and reports coverage.
- One test per branch of every function and trigger
- Seed data derived from the code, not written by hand
- Line and branch coverage, every uncovered line explained
- Standard pgTAP, committed next to your migrations
Standard pgTAP for PostgreSQL 14 to 18. Needs pgTAP and plpgsql_check in the target database.

One run produces the Database Coverage Report, with click-through to every routine's annotated source.
The one guarantee
Never a fabricated, false-passing, or flaky test.
- A branch that cannot be tested reliably is reported, with the reason
- No failing tests, no false tests, in any report
- An explained gap always beats a false pass
- Safe to gate CI on
What it does
Three capabilities, three editions.
Coverage
Free
Unit and trigger tests, run for you. Line and branch coverage, including dynamic SQL. Every uncovered line explained.
Learn more →
Integration testing
Team
Each function run with what it calls and what it fires. Coverage across the whole call map.
Learn more →
Security coverage
Enterprise
Tenant isolation proven through your functions, views and triggers, with the evidence per routine.
Learn more →
PII audit
Enterprise
Personal data caught escaping through error and RAISE messages, the leak nobody writes a test for.
Learn more →
One command, one run
unitautogen --schema public --out unit_tests --html report.html --json report.json
What comes out
- One
test_<routine>.sql per function, standard pgTAP trigger_tests/ with one file per trigger- HTML Database Coverage Report with per-routine test counts, branch % and statement %
- Annotated source per routine, every uncovered line tagged with why
- JSON summary, one entry per routine, for CI
- Non-zero exit code when a test fails or coverage drops below your gate
What every routine gets
- Executes with valid inputs
- Low and high boundary values
- One test per branch, true and false side
- Returns a stable result-set shape
- Returns rows matching its recorded output
- Touches only the expected tables
- A hand-built expectation scaffold you can fill in
- Triggers fired with INSERT, UPDATE and DELETE, effect asserted
Requirements
- PostgreSQL 14 to 18 on Supabase, Neon, Amazon RDS and Aurora, Azure, or self-hosted
- pgTAP and plpgsql_check installed in the database under test
- A throwaway copy of the database, never production
- One self-contained binary for Windows or Linux; nothing on the server
- No telemetry; nothing leaves your machine
Correctness. Isolation. Compliance.
Built for developers. Bought by security and compliance.
Compliance
Dated, reproducible reports that stand as audit evidence for HIPAA and SOC 2 access controls.
Compliance evidence →