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 muti-format test result reporting, make utPLSQL easy to run within existing CI/CD pipelines, with native integrations for SonarQube, Jenkins and TeamCity, Azure, GitHub Actions etc.
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 an open community of passionates, and it 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 Twitter, Bluesky and LinkedIn for news and announcements.
License¶
utPLSQL projects are licensed under the Apache 2.0 license.
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.
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 |
| 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.
Prior versions creators¶
| Name | Comments |
|---|---|
| Steven Feuerstein | Original Author |
| Chris Rimmer | |
| Patrick Barel | |
| Paul Walker |
Supporters¶
The utPLSQL project is community-driven and is not commercially motivated. Nonetheless, donations and other contributions are always welcome, and are detailed below.
Active supporters¶
There are currently no active supporters. If your company would like to support the project, please reach out on GitHub Discussions.
Past supporters¶
| Supporter | Details |
|---|---|
![]() |
In 2019, Redgate supported utPLSQL by sponsoring stickers and t-shirts |
