Available for PostgreSQL, Team edition
The whole flow inside the database, tested on every build.
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
UNITAUTOGEN_DSN or the PG* variables.
- Provide a Team licence:
--license PATH, the UAG_LICENSE variable, or a unitautogen.lic file.
- 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
- One report, one place a failure points to
- No scenarios to write or maintain
What platforms suggest
Testing your database logic is what the platform tells you to do.