For QA teams that need the assembled database verified, not one routine at a time.
Each entry point run with the functions it calls
Triggers its writes fire are run, not mocked
Coverage across the whole call map
No scenarios written by hand
How to do it
Team edition. Same setup as unit testing, one command.
Install pgTAP and plpgsql_check; connect with DATABASE_URL or the PG* variables.
Provide a Team licence: a unitautogen.lic file in the folder you run from, or --license PATH.
Run the integration command:
unitautogen integration --schema public --out integration_tests --html integration.html --json integration.json
One row per root function, its whole call map run for real
Commit the suite; gate every build in CI
What QA can't reach through the app
App tests drive the database only with inputs the screens produce
A branch inside a trigger three calls down never runs
Error, rollback and rare-data paths in the chain stay untested
Writing database scenarios by hand means building the data by hand, so it is skipped
One entry point, the whole chain
Point it at a root function. It runs the callees and the triggers for real, with generated data.
checkout(order_id) -- root: full test set generated
|- reserve_stock(item, qty) -- callee, run for real
|- apply_pricing(order_id) -- callee, run for real
\- [trigger] audit_order -- fires on write, not mocked
Valid inputs, boundaries and one test per branch, for the root
Every callee and trigger executed in real call order
Coverage measured across root, callees and triggers as one map
Standalone routines noted, not duplicated
What lands in CI, every build
An Integration Testing Report with one row per root function
Click a root for its call map, in real call order
Per-test write footprint across every table the map touches
Uncovered lines explained, because the root's inputs never reached them
Non-zero exit code when an outcome moves, root and branch named
How it fits a QA pipeline
Runs on a throwaway copy of the database, never production
Same generator, seed data and report format as the unit tests
Developers run unit tests as they work, free in the Community Edition
QA runs the integration suite each build, on the Team edition
Testing your database logic is what the platform tells you to do.
Supabase encourages automated pgTAP tests of your functions and policies. UnitAutogen runs each with its callees and triggers. Supabase, Testing your database →
Supabase ships pgTAP as its unit-testing extension. UnitAutogen emits standard pgTAP across the call map. Supabase, pgTAP unit testing →
Supabase ships plpgsql_check, the PL/pgSQL linter. UnitAutogen uses it for coverage across the whole map. Supabase, plpgsql_check →
Your privacy
We would like to log your visit to see how the site is used. That records the page, the site you came from, your IP address and browser, and a random id for this tab. We delete it once we no longer need it.