About
utPLSQL is a set of free-to-use, open-source frameworks and tools for unit testing Oracle Database PL/SQL code, inspired by the JUnit and RSpec family of frameworks.
It lets you write and run automated tests for anything that can be executed and observed from PL/SQL - packages, functions, procedures, triggers, views, and beyond.
Tests are defined with simple annotations and can be structured into hierarchies of suites, making tests easier to group into logical collections. A rich variety of matchers enables data comparison, including complex types such as objects, collections and cursors, while automatic, configurable transaction control keeps every test isolated and repeatable.
Built-in code coverage reporting and multi-format test result reporting make utPLSQL easy to run within existing CI/CD pipelines, with native integrations for SonarQube, Jenkins, TeamCity, Azure DevOps, GitHub Actions and more.
Frameworks and tools¶
| Project | Description | What's new? | Something broken? |
|---|---|---|---|
| utPLSQL | Core framework — install and run unit tests in Oracle | releases | report it here |
| utPLSQL-cli | Command-line client for running tests from CI/CD pipelines | releases | report it here |
| utPLSQL-maven-plugin | Maven plugin for running utPLSQL tests | releases | report it here |
| utPLSQL-SQLDeveloper | SQL Developer extension | releases | report it here |
| utPLSQL-PLSQL-Developer | PL/SQL Developer extension | releases | report it here |
| utPLSQL-java-api | Java API for connecting to utPLSQL | releases | report it here |
| utPLSQL-dotnet-api | .NET API for connecting to utPLSQL | report it here | |
| utPLSQL-demo-project | Demonstration project showcasing running utPLSQL tests in GitHub Actions with dockerized Oracle DB | report it here |
Community¶
utPLSQL is created by a community of passionate engineers and embraces a Code of Conduct.
- Search or start a topic at the Organization or the utPLSQL framework GitHub Discussions to ask questions, find support and share ideas
- Search Stack Overflow using the
utplsqltag - Open a new issue on GitHub for bugs or feature requests
- Read the contributing guide if you'd like to get involved
Follow the project on X, Bluesky and LinkedIn for news and announcements.
Sponsorship¶
utPLSQL is free and open source (Apache 2.0). Sponsorship funds maintainer time, compatibility with new Oracle versions and platforms, documentation, and new features.
If you are interested in sponsoring or supporting the project as: - Organization: you may choose between recognition tiers, and commercial support with priority triage and consultation hours - Individual: we welcome donation of any amount, one-time or monthly
License¶
utPLSQL projects are licensed under the Apache 2.0 license.
Stewardship¶
utPLSQL is stewarded by utPLSQL Development Labs Ltd, which holds the utPLSQL name, branding and project assets, and manages sponsorships and funded development. Contributors retain copyright of their contributions, which are licensed under the Apache 2.0 license. See the announcement for details.
History¶
Framework history¶
While the framework exists since 1999, the current version is a consequence of a complete rewrite done in 2016 by passionate developers, using the object-oriented capabilities of the Oracle database to make it more aligned with other testing frameworks (e.g. JUnit for Java, RSpec for Ruby).
This had significant impact on the test code syntax and how the framework is used.
In 2026, utPLSQL Development Labs Ltd was established to provide a sustainable legal and financial foundation for the project (announcement, background).
Gratitude to creators, contributors and maintainers of previous versions of the framework
- Steven Feuerstein - Initial Author
- Chris Rimmer
- Patrick Barel
- Paul Walker
- and others
Major Contributors¶
| Name | GitHub | Comments |
|---|---|---|
| Jacek Gebal | jgebal | Project lead, admin, core PL/SQL framework, pipelines, expectations, reporters, annotations, cache |
| Pavel Kaplya | Pazus | Core PL/SQL framework, design, annotations, pipelines |
| Lukasz Wasylow | lwasylow | Core PL/SQL framework, demo project |
| Samuel Nitsche | pesse | utPLSQL-java-api, utPLSQL-cli |
| Philipp Salvisberg | utPLSQL-SQLDeveloper-extension | |
| Simon Martinelli | utPLSQL-PLSQL-Developer plugin, utPLSQL-cli | |
| Vinicius Avellar | viniciusam | utPLSQL-java-api, maven-plugin, utPLSQL-cli |
| Robert Love | rlove | |
| David Pyke | Shoelace |
Many thanks to all contributors across utPLSQL projects.
Contact¶
For help with using utPLSQL, bug reports and feature ideas, please use GitHub Discussions.
- General questions - email info@utPLSQL.org
- Inquiries via social media - X, LinkedIn, Bluesky
utPLSQL is free open-source software, built by its maintainers and contributors. Sustainable maintenance and development requires funding.
- Do you want to support the project?
- Is your company looking for commercial support from the project?