Skip to content

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.

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
supported_by_redgate In 2019, Redgate supported utPLSQL by sponsoring stickers and t-shirts