CheckOps
utPLSQL
utPLSQL is an Apache-2.0 unit testing framework for Oracle PL/SQL and SQL, with annotations, rich expectations and reporters for SonarQube, Jenkins and TeamCity.
Latest public signals
Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.
Introduction
utPLSQL is a unit testing framework for Oracle PL/SQL and SQL that follows practices of modern frameworks like JUnit and RSpec.
Test suites are defined by annotating package specifications, and expectations compare complex types such as objects, collections and cursors natively. Reporters integrate with SonarQube, Jenkins and TeamCity. Installation runs install_headless.sql, which creates the UT3 schema.
In the quality loop utPLSQL tests database logic in Oracle.
The source code is at utPLSQL/utPLSQL on GitHub under the Apache-2.0 licence, with about 623 stars; the most recent commit was on 9 November 2026.
Features
- Annotations: –%suite and –%test.
- Expectations: Rich matchers.
- Complex type comparison: Objects, collections and cursors.
- Reporters: SonarQube, Jenkins, TeamCity.
- Coverage: Code coverage reports.
- CLI: utPLSQL-cli runner.
Pros
- Oracle standard: Mature community tool.
- Free to use: Open source under the Apache-2.0 licence, so the core tool costs nothing to use.
- Actively maintained: The repository had commits as recent as 9 November 2026.
Cons
- Oracle only: Not portable.
- Install in DB: Needs schema privileges.
- PL/SQL skills: Tests in PL/SQL.
Usage and Links (Example)
create or replace package test_tax as
--%suite(Tax)
--%test(Applies standard rate)
procedure standard_rate;
end;
/
exec ut.run('test_tax');
Resources:
Pricing
utPLSQL is free and open source under the Apache-2.0 licence.
Recommended for?
- Oracle teams with PL/SQL code.
Conclusion
utPLSQL is the de facto unit test framework for PL/SQL.
Wire its reporters into CI.
On CheckOps, utPLSQL is filed under the Unit testing and Integration testing stages. Related tools listed here include pgTAP, SQLFluff, Atlas, Squawk, Database Lab Engine and dbt tests. A short trial on a real project, with your own code, data and pipeline, is usually the fastest way to choose between them, because fit matters more than feature lists. Facts here come from the official site, documentation and repository, checked on 11 November 2026.
Alternatives
Other tools on CheckOps that cover similar ground. Open a page, or compare one with utPLSQL side by side.
- PpgTAPpgTAP is a unit testing framework for PostgreSQL written in PL/pgSQL and PL/SQL, providing TAP-emitting assertions for schema, data and functions, run with pg_prove.Compare with utPLSQL
SSQLFluffSQLFluff is an MIT dialect-flexible SQL linter and auto-formatter with Jinja and dbt templating support.Compare with utPLSQL
AAtlasAtlas is an Apache-2.0 schema-as-code tool from Ariga for declarative and versioned database migrations, with migration linting and schema tests in CI.Compare with utPLSQL
SSquawkSquawk is an Apache-2.0 linter for PostgreSQL migrations that flags changes likely to cause downtime, with a CLI, Docker image, GitHub Action and browser playground.Compare with utPLSQL
DDatabase Lab EngineDatabase Lab Engine (DBLab) is Postgres.ai's Apache-2.0 tool for thin cloning and branching of large PostgreSQL databases in seconds for development and testing.Compare with utPLSQL
Ddbt testsdbt tests are the built-in data tests and unit tests of dbt, the Apache-2.0 data transformation framework, used to validate models with unique, not_null, accepted_values and relationships checks.Compare with utPLSQL