diff --git a/.github/workflows/build_pages.yml b/.github/workflows/build_pages.yml deleted file mode 100644 index d48efb30..00000000 --- a/.github/workflows/build_pages.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Based on: https://blog.elmah.io/deploying-a-mkdocs-documentation-site-with-github-actions/ -name: build -on: - push: - branches: - - main -jobs: - deploy: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - uses: actions/setup-python@v2 - with: - python-version: 3.x - - name: Setup MkDocs - run: | - pip install mkdocs-material - pip install mkdocs-git-revision-date-localized-plugin - pip install mkdocs-include-markdown-plugin - pip install mike - pip install mkdocs-git-committers-plugin-2 - pip install mkdocs-rss-plugin - - name: Build website - run: mkdocs gh-deploy --verbose diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 3195cfdb..00000000 --- a/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -_site -.sass-cache -.jekyll-metadata -.idea -/.jekyll-cache/ -/Gemfile.lock -/site \ No newline at end of file diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/404.html b/404.html new file mode 100644 index 00000000..3c76d354 --- /dev/null +++ b/404.html @@ -0,0 +1,1617 @@ + + + +
+ + + + + + + + + + + + + + + + + + + + + + +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.
+| 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 | +
utPLSQL is created by a community of passionate engineers and embraces a +Code of Conduct.
+utplsql tagFollow the project on X, Bluesky +and LinkedIn for news and announcements.
+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
+ + + + +utPLSQL projects are licensed under the Apache 2.0 license.
+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.
+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
| 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.
+For help with using utPLSQL, bug reports and feature ideas, please use GitHub Discussions.
+utPLSQL is free open-source software, built by its maintainers and contributors. Sustainable maintenance and development requires funding.
+Today at #apexConn19.
+Sam Nitsche (blogger, presenter, testing & compassionate-coding advocate, utPLSQL-cli & utPLSQL-api developer) met with Kris Rice (Oracle SQLDeveloper, sqlcl, ORDS rock-star, developer, advocate, presenter, mentor)
+As a result, something amazing happened. Within an hour or so, Kris created a fully functional auto-runner for utPLSQL tests within Oracle sqlcl.
+
If you want to use sqlcl to run your tests, each time you compile a package, have a look at this script for sqlcl.
+Huge thank you to Kris and Sam!
+++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +Amazing things can happen when right people meet at right time in right place.
+
On April 25th, a major release 3.1.0 of utPLSQL was published on github and the information was not published on our site.
+Right after the release two issues were found resulting in bug fixes and release 3.1.1
+utplsql-cli and idle time exceeds 1 minute (https://github.com/utPLSQL/utPLSQL/issues/652)Important Notice
+++Starting with this release,
+utPLSQL-sql-cliis no longer supported. +UseutPLSQL-clirelease 3.1.0 or above to interact with this and upcoming versions of utPLSQL.
ut_tfs_junit_reporter for MS Team Foundation Server to support old JUnit xml formatut_coverage_cobertura_reporterut_xunit_reporter. The reporter now conforms to the format specification.ut_junit_reporter as a base for ut_xunit_reporter. The ut_xunit_reporter remains active for backward compatibility but is considered depreciatedut_documentation_reporter to display tests annotated--%disabled as DISABLEDutPLSQL-java-api without code changesthrows annotation to simplify writing tests for code that throws an exceptioncontext to enable grouping of tests into sub-suite in a test suite packagehave_count matcher for checking cursor rows/collection elements countinclude() and exclude() extensions to cursor and object/collection data comparisondiff functionality for cursor, object and collection data ut.expect() on closed cursor (#548)Existing state of packages was discarded/invalidated exceptions (ORA-04068/ORA-04061). The whole suite will execute, test result reports will be available and the exception will be re-thrown to the user after the run was finished. (#504)a_include_objects (#511)--%suite and procedure-specific annotations. (#514 / #516)end loop elements (#539)xunit_reporter (#547)ORA-00001: unique constraint (UTP3.UT_COVERAGE_SOURCES_TMP_PK) violated (#568)In last months, we took steps to formalise utPLSQL and to give it a legal home under utPSLQL Development Labs Ltd. +With this being almost complete, it is now time to open utPLSQL for sponsorship that will allow for sustained development of this great framework.
+utPLSQL remains free to use and open source (Apache 2.0).
+ + +For many years, utPLSQL has been built and maintained through the contributions of dedicated and passionate engineers from the community.
+To provide a sustainable legal structure for the project, utPLSQL is now under the legal custody of utPLSQL Development Labs Ltd.
+ + +utPLSQL v3 has come a long way since it was first released in 2017. +It has already been over 10 years since the first discussions about starting the project began. +However, development slowed after 2019, and by 2024 the project had become inactive. +Life took me in a different direction for a few years, and the after-hours project understandably took a back seat.
+ + +We take all the possible effort to assure utPLSQL can be tested against t all supported Oracle database versions.
+Today, our automation got enriched with Oracle 19c database testing.
+Pavel Kaplya has prepared a new small Docker Image for Oracle 19c.
+Note:
+++You can take advantage of our efforts and build your own small Docker images (non-PDB) using our docker-scripts.
+
utPLSQL is now getting tested against five database versions: +- Oracle 11g XE +- Oracle 12c R1 +- Oracle 12c R2 +- Oracle 18c +- Oracle 19c
+You can see our build process & test results on travis-ci.org/utPLSQL
+All of our deliverable projects use set of tools that are free to sue for Open-Source: +- static code analysis using sonarcloud +- publishing code coverage using coveralls +- deploying java-api artifacts to packagecloud +- deploying utPLSQL-cli artifacts to bintray +- maven plugin publishing into maven repository
+All of our builds must pass quality gates (code quality/tests/code coverage) before we approve and merge pull requests.
+ + +utplsql run has four new options that decide what is included in the coverage report by schema or object name pattern:
Full Changelog: v3.2.1...v3.2.2
+Both utPLSQL-cli and utPLSQL-maven-plugin v3.2.1 are now available, adding support for Oracle Wallet (Secure External Password Store) connections.
+ + +UT_TAP_REPORTER on Oracle 23.26 by @jgebal in #1359--%name annotation. by @jgebal in #1361throws can reference exception without schema or package name by @jgebal in #1365throws works with uninitialized exception variables by @jgebal in #1366Full Changelog: v3.2.2...v.3.2.3
+This is a maintenance release all dependencies and changes by @PhilippSalvisberg
+Full Changelog: v1.4.1...v2.0.1
+Full Changelog: v3.2.01...v3.2.2
+join_by by @lwasylow in #1295and and or operators when running tests by tags by @lwasylow in #1250Full Changelog: v3.1.13...v3.1.14
+Download v3.1.13 release version here
a_coverage_schemes option of utPLSQL by @pesse in #180<ora-stuck-timeout> parameter - resolves #70--%disabled annotation. See documentation. Implemented in: #1183, resolves #610.JSON datatype on Oracle 21c. Implemented in #1181, resolves #1114.to_be_within( distance|pct ).of_(expoected). See documentation. Implemented in #1076, resolves #77.JSON data. Implemented in #1181, resolves #1113.Download v3.1.12 release version here
Download v3.1.11 release version here
Happy new year! Thanks to Simon Martinelli utPLSQL v3+ is now integrated with PL/SQL Developer IDE
+See details of plugin usage in readme file
+PlsqlDeveloperUtPlsqlPlugin.dll or PlsqlDeveloperUtPlsqlPlugin_x86.dll to the PlugIns directory of your PL/SQL Developer installation--%throws annotations at runtime #721 #1033Download v3.1.10 release version here
--%name to allow for providing custom name for contexts #1016The value of --%context annotation is no longer representing context name.
+This value is now context description (displayname).
+With this change, the --%context annotation is now aligned with --%test and --%suite annotation syntax.
New annotation --%name was introduced to facilitate naming of contexts.
-f=ut_documentation_reporter -o="output.txt" you will have to enclose the "output.txt" part as shown--tags=tag1[,tag2[,tag3]]parameter (#157)-r/--random-test-order and -seed/--random-test-order-seed (#139)-D/--dbms_output (#137)orai18n.jar is not on the classpath. This is highly recommended due to some strange behaviour of the jdbc-driver otherwise (#146, #153)-type_mapping) parameter is now interpreted correctly (#143)CompatibilityProxyassumedUtPlsql version. This replaces the former skipCompatibilityCheck parametergetDatabaseVersion is now deprecated in favor of getUtPlsqlVersion and getRealDbPlsqlVersionTestRunnergetOptions returns the current TestRunnerOptions nowhttps://packagecloud.io/utPLSQL/utPLSQL-java-api/packages/java/org.utplsql/java-api-3.1.7.jar
+<dependency>
+ <groupId>org.utplsql</groupId>
+ <artifactId>java-api</artifactId>
+ <version>3.1.7</version>
+</dependency>
+## New features
+json in Oracle 12.2 and above #924tag annotation to enable tagging of tests and suites #66## Enhancements
+dbms_utility.name_resolve #569 #885## Bug fixes
+ut_realtime_reporter missing warnings in test and suite output structures #936join_by / exclude / include invalid syntax on collection in anydata compare #912ut_junit_reporter producing invalid output on failing tests with long failure message #927ut_sonar_test_reporter producing invalid output on failing tests with long failure message #925ut_coverage_cobertura_reporter producing wrong line breaks which breaks the xml validation against DTD #917exclude option for ref cursor where column order was not resolved correctly #911unordered option for ref cursor with null values #914ORA-00907 when comparing ref cursors with BINARY_ columns #899to_be_like in Oracle Database 11.2.0.4 due to Oracle Bug 14402514 #891## Documentation improvements
+## Internal enhancements
+ + + +This version of utPLQL-cli is compatible with all versions of utPLSQL from 3.0.0 to 3.1.6. We encourage you to always use the latest version of cli to communicate with a v3 core.
+-q, --quiet parameter-d, --debug parameterutplsql run "sys as sysdba"/pw@connectstring (#115)-t, --timeout parameter (#124)/ and passwords containing @ by encapsulating those in the connectstring with ": utplsql run "my/User"/"P@ssword"@server:1521/Service (#111)v3.1.53.1.5 where to_equal matcher was failing due to privileges when comparing non sql diffable types #870v3.1.43.1.4 where to_be_empty matcher was failing due to privileges #864to_contain matcher for collections and cursors #79unordered_columns (uc) option for cursor comparison to ignore the order of the columns #779 ut_debug_reporter for debug logging #480 ut_realtime_reporter for utPLSQL-SQLDeveloper extension #795ut_output_buffer #840get_reporters_list function #814dbms_lock.sleep to dbms_session for newer DB versions #806ut_runner.is_test #788ut_runner.is_suite #787ut_runner.has_suites #786ANY grants #737 --%context with --%displayname #726This version of utPLQL-cli is compatible with all versions of utPLSQL from 3.0.0 to 3.1.3. We encourage you to always use the latest version of cli to communicate with a v3 core.
+utplsql info [user/password@connectstring] #77 utplsql reporters user/password@connecstring ALTER SESSION statements when connecting #101 ut.run (#479)--%throws annotation (#685)--%beforeall, --%beforeeach, --%afterall, --%aftereach annotations with list of procedures to execute (#649)is_empty() matcher (#707)<
If you want to use sqlcl to run your tests, each time you compile a package, have a look at this script for sqlcl.
+Huge thank you to Kris and Sam!
+++ + +Amazing things can happen when right people meet at right time in right place.
+
How to easily integrate @utPLSQL into @VisualStudio via External Tools.
+ + + + +utplsql run has four new options that decide what is included in the coverage report by schema or object name pattern:
Both utPLSQL-cli and utPLSQL-maven-plugin v3.2.1 are now available, adding support for Oracle Wallet (Secure External Password Store) connections.
+ + +a_coverage_schemes option of utPLSQL by @pesse in #180-f=ut_documentation_reporter -o="output.txt" you will have to enclose the "output.txt" part as shown--tags=tag1[,tag2[,tag3]]parameter (#157)-r/--random-test-order and -seed/--random-test-order-seed (#139)-D/--dbms_output (#137)orai18n.jar is not on the classpath. This is highly recommended due to some strange behaviour of the jdbc-driver otherwise (#146, #153)-type_mapping) parameter is now interpreted correctly (#143)This version of utPLQL-cli is compatible with all versions of utPLSQL from 3.0.0 to 3.1.6. We encourage you to always use the latest version of cli to communicate with a v3 core.
+-q, --quiet parameter-d, --debug parameterutplsql run "sys as sysdba"/pw@connectstring (#115)-t, --timeout parameter (#124)/ and passwords containing @ by encapsulating those in the connectstring with ": utplsql run "my/User"/"P@ssword"@server:1521/Service (#111)This version of utPLQL-cli is compatible with all versions of utPLSQL from 3.0.0 to 3.1.3. We encourage you to always use the latest version of cli to communicate with a v3 core.
+utplsql info [user/password@connectstring] #77 utplsql reporters user/password@connecstring ALTER SESSION statements when connecting #101 UT_TAP_REPORTER on Oracle 23.26 by @jgebal in #1359--%name annotation. by @jgebal in #1361throws can reference exception without schema or package name by @jgebal in #1365throws works with uninitialized exception variables by @jgebal in #1366Full Changelog: v3.2.2...v.3.2.3
+Full Changelog: v3.2.01...v3.2.2
+join_by by @lwasylow in #1295and and or operators when running tests by tags by @lwasylow in #1250Full Changelog: v3.1.13...v3.1.14
+Download v3.1.13 release version here
--%disabled annotation. See documentation. Implemented in: #1183, resolves #610.JSON datatype on Oracle 21c. Implemented in #1181, resolves #1114.to_be_within( distance|pct ).of_(expoected). See documentation. Implemented in #1076, resolves #77.JSON data. Implemented in #1181, resolves #1113.Download v3.1.12 release version here
Download v3.1.11 release version here
--%throws annotations at runtime #721 #1033Download v3.1.10 release version here
--%name to allow for providing custom name for contexts #1016The value of --%context annotation is no longer representing context name.
+This value is now context description (displayname).
+With this change, the --%context annotation is now aligned with --%test and --%suite annotation syntax.
New annotation --%name was introduced to facilitate naming of contexts.
## New features
+json in Oracle 12.2 and above #924tag annotation to enable tagging of tests and suites #66## Enhancements
+dbms_utility.name_resolve #569 #885## Bug fixes
+ut_realtime_reporter missing warnings in test and suite output structures #936join_by / exclude / include invalid syntax on collection in anydata compare #912ut_junit_reporter producing invalid output on failing tests with long failure message #927ut_sonar_test_reporter producing invalid output on failing tests with long failure message #925ut_coverage_cobertura_reporter producing wrong line breaks which breaks the xml validation against DTD #917exclude option for ref cursor where column order was not resolved correctly #911unordered option for ref cursor with null values #914ORA-00907 when comparing ref cursors with BINARY_ columns #899to_be_like in Oracle Database 11.2.0.4 due to Oracle Bug 14402514 #891## Documentation improvements
+## Internal enhancements
+ + + +v3.1.53.1.5 where to_equal matcher was failing due to privileges when comparing non sql diffable types #870v3.1.43.1.4 where to_be_empty matcher was failing due to privileges #864to_contain matcher for collections and cursors #79unordered_columns (uc) option for cursor comparison to ignore the order of the columns #779 ut_debug_reporter for debug logging #480 ut_realtime_reporter for utPLSQL-SQLDeveloper extension #795ut_output_buffer #840get_reporters_list function #814dbms_lock.sleep to dbms_session for newer DB versions #806ut_runner.is_test #788ut_runner.is_suite #787ut_runner.has_suites #786ANY grants #737 --%context with --%displayname #726ut.run (#479)--%throws annotation (#685)--%beforeall, --%beforeeach, --%afterall, --%aftereach annotations with list of procedures to execute (#649)is_empty() matcher (#707)<![CDATA[ text (#643)uninstall_all.sql script that completely removes utPLSQL objects (#673)ut.run() (#679)On April 25th, a major release 3.1.0 of utPLSQL was published on github and the information was not published on our site.
+Right after the release two issues were found resulting in bug fixes and release 3.1.1
+utplsql-cli and idle time exceeds 1 minute (https://github.com/utPLSQL/utPLSQL/issues/652)Important Notice
+++Starting with this release,
+utPLSQL-sql-cliis no longer supported. +UseutPLSQL-clirelease 3.1.0 or above to interact with this and upcoming versions of utPLSQL.
ut_tfs_junit_reporter for MS Team Foundation Server to support old JUnit xml formatut_coverage_cobertura_reporterut_xunit_reporter. The reporter now conforms to the format specification.ut_junit_reporter as a base for ut_xunit_reporter. The ut_xunit_reporter remains active for backward compatibility but is considered depreciatedut_documentation_reporter to display tests annotated--%disabled as DISABLEDutPLSQL-java-api without code changesthrows annotation to simplify writing tests for code that throws an exceptioncontext to enable grouping of tests into sub-suite in a test suite packagehave_count matcher for checking cursor rows/collection elements countinclude() and exclude() extensions to cursor and object/collection data comparisondiff functionality for cursor, object and collection data ut.expect() on closed cursor (#548)Existing state of packages was discarded/invalidated exceptions (ORA-04068/ORA-04061). The whole suite will execute, test result reports will be available and the exception will be re-thrown to the user after the run was finished. (#504)a_include_objects (#511)--%suite and procedure-specific annotations. (#514 / #516)end loop elements (#539)xunit_reporter (#547)ORA-00001: unique constraint (UTP3.UT_COVERAGE_SOURCES_TMP_PK) violated (#568)Both driver files need to be downloaded and placed in utPLSQL-cli/lib folder
This version of java-api is compatible with all versions of utPLSQL from 3.0.0 to 3.1.0. +We encourage you to always use the latest version of cli to communicate with a v3 core.
+Enhancements +- Support for custom reporters. Just call utplsql run user/pass@connstr -f=my_custom_reporter and cli will try to use a database-reporter with the given name +- Assets necessary for CoverageHTMLReporter are written to $outputFileName-assets folder (utPLSQL/utPLSQL-java-api#39) +- Realtime-Feedback: Output to screen is immediate, output to files is in bulks (#68) +- NLS-Support from environment (#56)
+Bugfixes +- The correct usage is now stated in help message (#63) +- Several small improvements
+For more info on improvements and fixes, check out the blog post from Samuel Nitsche
+ + +You may find the client on the download page
+Both driver files need to be downloaded and placed in utPLSQL-cli/lib folder
ut_runner.runut_expectation sub-typesutPLSQL v3.0.2 - released
+Changes in this release
+utPLSQL v3.0.1 - released
+Key features
+Version 3 has reached beta state.
+It can be downloaded from the releases page.
+It's being used now in multiple organizations with great success. The documentation work is progressing. However, we realize that quite a bit of work needs to be done in this area.
+We welcome support requests and discussions, feature requests, and bug reports in the GitHub issues log.
+This is not an April Fools Day Joke, we really release it.
+ + +Version 3 has reached alpha state.
+It can be downloaded from the releases page.
+It's being used now in multiple organizations with great success. The documentation work is progressing. However, we realize that quite a bit of work needs to be done in this area.
+We welcome support requests and discussions, feature requests, and bug reports in the GitHub issues log.
+ + +Version 3 in pre-alpha state
+Work on version 3 of utPLSQL has been moving quickly.
+Nearly every day version 3 has commits to repository with multiple developers contributing.
It won't be long until we are in an alpha status. If your interested in following along or helping out with the project check out the version 3 readme.md
+We welcome support requests and discussions, feature requests, and bug reports in the GitHub issues log.
+ + +CompatibilityProxyassumedUtPlsql version. This replaces the former skipCompatibilityCheck parametergetDatabaseVersion is now deprecated in favor of getUtPlsqlVersion and getRealDbPlsqlVersionTestRunnergetOptions returns the current TestRunnerOptions nowhttps://packagecloud.io/utPLSQL/utPLSQL-java-api/packages/java/org.utplsql/java-api-3.1.7.jar
+<dependency>
+ <groupId>org.utplsql</groupId>
+ <artifactId>java-api</artifactId>
+ <version>3.1.7</version>
+</dependency>
+Full Changelog: v3.2.1...v3.2.2
+Both utPLSQL-cli and utPLSQL-maven-plugin v3.2.1 are now available, adding support for Oracle Wallet (Secure External Password Store) connections.
+ + +<ora-stuck-timeout> parameter - resolves #70Happy new year! Thanks to Simon Martinelli utPLSQL v3+ is now integrated with PL/SQL Developer IDE
+See details of plugin usage in readme file
+PlsqlDeveloperUtPlsqlPlugin.dll or PlsqlDeveloperUtPlsqlPlugin_x86.dll to the PlugIns directory of your PL/SQL Developer installationThis is a maintenance release all dependencies and changes by @PhilippSalvisberg
+Full Changelog: v1.4.1...v2.0.1
+Version 2.3.1 has been released.
+This release updates documentation to reflect the move of the project to GitHub.
+Current and past releases can be located on our downloads page.
+ + +Issue #19 to link documentation to the website has been completed.
+Issue #4 to update all URL sourceforge References to GitHub, has also been completed.
+You can visit the Documentation by using the menu item at the top of the page.
+ + +Welcome to the new utPLSQL website. We are still in the early stages of moving to GitHub.
+The Code has already been moved.
+The following still needs to be done:
+ + + +We've been busy improving the utPLSQL website experience over the past couple of days.
+ + +Today is #JoelKallmanDay.
+As memorial of Joel Kallman, on this day utPLSQL launched its new website using different engine.
+We have moved away from using Jekyll with GitHub Pages to host project and organization sites. +Jekyll was simply too much hussle and we used MkDocs to generate offline documentation for utPLSQL that was packaged into the release zip file.
+So instead of using two different methods, wei will now use only one. MkDocs is now used for both utPSLQL offline and for online organization and project pages.
+Thanks to wonderful material theme and mike(versioning plugin) for MkDocs you may now enjoy the following new features:
+Hopefully, you will like the changes and enhancements. All the permanent links to old site should still be working.
+ + +We just added a new section to our website: Resources.
+We will keep adding all kinds of examples, tutorials, videos, blog posts and other stuff related to +utPLSQL to this page, but we might not know everything.
+So please, if you find something related to utPLSQL which is publicly (without a paywall) available or if you created something +yourself, please let us know!
+ + +Issue #19 to link documentation to the website has been completed.
+Issue #4 to update all URL sourceforge References to GitHub, has also been completed.
+You can visit the Documentation by using the menu item at the top of the page.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +How to easily integrate @utPLSQL into @VisualStudio via External Tools.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +For many years, utPLSQL has been built and maintained through the contributions of dedicated and passionate engineers from the community.
+To provide a sustainable legal structure for the project, utPLSQL is now under the legal custody of utPLSQL Development Labs Ltd.
+ + +The incorporation does not change the open-source nature of utPLSQL. All existing utPLSQL projects remain free to use and open source, licensed under the Apache License 2.0.
+The company has been established primarily to provide the infrastructure needed to sustain and grow the project. In particular, it will allow us to:
+Sponsorship or financial support does not provide ownership of utPLSQL or control over its direction. Contributions to the project remain open to the community.
+Alongside this transition, I have published a roadmap outlining the major architectural and feature initiatives planned for utPLSQL. The roadmap is intended to provide visibility into the direction of the project and serve as an entry point for discussions around individual initiatives and their implementation.
+See the utPLSQL Roadmap on GitHub.
+The goal is to provide utPLSQL with a more sustainable foundation while preserving its open-source nature and community-driven development.
+For a more personal perspective on the history behind this decision, the motivations for establishing utPLSQL Development Labs Ltd, and the thinking behind this next chapter for utPLSQL, I have written a more detailed post on oraclethoughts.com.
+++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +Jacek Gebal
+
+@utPLSQL
In last months, we took steps to formalise utPLSQL and to give it a legal home under utPSLQL Development Labs Ltd. +With this being almost complete, it is now time to open utPLSQL for sponsorship that will allow for sustained development of this great framework.
+utPLSQL remains free to use and open source (Apache 2.0).
+ + +For many years, utPLSQL has been built and maintained through the contributions of dedicated and passionate engineers from the community.
+To provide a sustainable legal structure for the project, utPLSQL is now under the legal custody of utPLSQL Development Labs Ltd.
+ + +utplsql run has four new options that decide what is included in the coverage report by schema or object name pattern:
Full Changelog: v3.2.1...v3.2.2
+Both utPLSQL-cli and utPLSQL-maven-plugin v3.2.1 are now available, adding support for Oracle Wallet (Secure External Password Store) connections.
+ + +utPLSQL v3 has come a long way since it was first released in 2017. +It has already been over 10 years since the first discussions about starting the project began. +However, development slowed after 2019, and by 2024 the project had become inactive. +Life took me in a different direction for a few years, and the after-hours project understandably took a back seat.
+ + +UT_TAP_REPORTER on Oracle 23.26 by @jgebal in #1359--%name annotation. by @jgebal in #1361throws can reference exception without schema or package name by @jgebal in #1365throws works with uninitialized exception variables by @jgebal in #1366Full Changelog: v3.2.2...v.3.2.3
+This is a maintenance release all dependencies and changes by @PhilippSalvisberg
+Full Changelog: v1.4.1...v2.0.1
+We've been busy improving the utPLSQL website experience over the past couple of days.
+ + +Full Changelog: v3.2.01...v3.2.2
+We just added a new section to our website: Resources.
+We will keep adding all kinds of examples, tutorials, videos, blog posts and other stuff related to +utPLSQL to this page, but we might not know everything.
+So please, if you find something related to utPLSQL which is publicly (without a paywall) available or if you created something +yourself, please let us know!
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +Today is #JoelKallmanDay.
+As memorial of Joel Kallman, on this day utPLSQL launched its new website using different engine.
+We have moved away from using Jekyll with GitHub Pages to host project and organization sites. +Jekyll was simply too much hussle and we used MkDocs to generate offline documentation for utPLSQL that was packaged into the release zip file.
+So instead of using two different methods, wei will now use only one. MkDocs is now used for both utPSLQL offline and for online organization and project pages.
+Thanks to wonderful material theme and mike(versioning plugin) for MkDocs you may now enjoy the following new features:
+Hopefully, you will like the changes and enhancements. All the permanent links to old site should still be working.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +utPLSQL v3 has come a long way since it was first released in 2017. +It has already been over 10 years since the first discussions about starting the project began. +However, development slowed after 2019, and by 2024 the project had become inactive. +Life took me in a different direction for a few years, and the after-hours project understandably took a back seat.
+ +In the last year, a few people reached out to me asking whether the project is still alive. +Regulated companies often can't use software that isn't under active maintenance, +and others simply treat it as a security risk.
+In recent months I have invested time in bringing the project back to life, +refreshing all libraries and dependencies, fixing build processes and pipelines, +and releasing new versions for the main project and tools. +The documentation was restructured and updated, and discussions were moved to GitHub.
+I realized that utPLSQL needs a clear vision for its future development. Without one, +it risks becoming legacy and dying, like many other open-source projects have.
+The software world keeps moving forward. New versions of Oracle Database, programming languages, developer tools and libraries are released continuously.
+At the same time, there are many ideas and plans that were never implemented as part of the development of utPLSQL v3. Those are still very much valid and would be highly valuable additions to the framework. They would make PL/SQL development and testing even more modern and smoother.
+I have created a high-level roadmap that highlights the key points of the future development of utPLSQL core.
+The detailed roadmap is available in the utPLSQL org GitHub Discussions.
+The intention is to keep utPLSQL under active development and create possibilities for companies and individuals to get direct access to the development team, with options for knowledge sharing, consultations, and more.
+Working on the above requires significant investment of thought, time and effort. It is not sustainable to keep developing utPLSQL without support from those who use it and benefit from it daily.
+Over the last decade, this project has been a significant part of my life as an engineer and professional software developer. I would like to see it thrive rather than fade into deprecation and obscurity.
+Update - September 25, 2026
+utPLSQL Development Labs Ltd has been incorporated to steward the project. Sponsorships and other support arrangements are now handled by the company - contact sponsors@utPLSQL.org. See Incorporation of utPLSQL Development Labs Ltd.
+I am currently working on opening utPLSQL for sponsorship, and I'll share the tiers and details in a follow-up post once everything is in place.
+If you or your company would benefit from active development of utPLSQL and want to be notified when sponsorship opens then please:
+Your responses will help me gauge interest as I finalize the preparations.
+++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +Jacek Gebal
+
+@utPLSQL
join_by by @lwasylow in #1295and and or operators when running tests by tags by @lwasylow in #1250Full Changelog: v3.1.13...v3.1.14
+Download v3.1.13 release version here
Today is #JoelKallmanDay.
+As memorial of Joel Kallman, on this day utPLSQL launched its new website using different engine.
+We have moved away from using Jekyll with GitHub Pages to host project and organization sites. +Jekyll was simply too much hussle and we used MkDocs to generate offline documentation for utPLSQL that was packaged into the release zip file.
+So instead of using two different methods, wei will now use only one. MkDocs is now used for both utPSLQL offline and for online organization and project pages.
+Thanks to wonderful material theme and mike(versioning plugin) for MkDocs you may now enjoy the following new features:
+Hopefully, you will like the changes and enhancements. All the permanent links to old site should still be working.
+ + +a_coverage_schemes option of utPLSQL by @pesse in #180<ora-stuck-timeout> parameter - resolves #70--%disabled annotation. See documentation. Implemented in: #1183, resolves #610.JSON datatype on Oracle 21c. Implemented in #1181, resolves #1114.to_be_within( distance|pct ).of_(expoected). See documentation. Implemented in #1076, resolves #77.JSON data. Implemented in #1181, resolves #1113.Download v3.1.12 release version here
Download v3.1.11 release version here
Happy new year! Thanks to Simon Martinelli utPLSQL v3+ is now integrated with PL/SQL Developer IDE
+See details of plugin usage in readme file
+PlsqlDeveloperUtPlsqlPlugin.dll or PlsqlDeveloperUtPlsqlPlugin_x86.dll to the PlugIns directory of your PL/SQL Developer installation--%throws annotations at runtime #721 #1033Download v3.1.10 release version here
--%name to allow for providing custom name for contexts #1016The value of --%context annotation is no longer representing context name.
+This value is now context description (displayname).
+With this change, the --%context annotation is now aligned with --%test and --%suite annotation syntax.
New annotation --%name was introduced to facilitate naming of contexts.
We just added a new section to our website: Resources.
+We will keep adding all kinds of examples, tutorials, videos, blog posts and other stuff related to +utPLSQL to this page, but we might not know everything.
+So please, if you find something related to utPLSQL which is publicly (without a paywall) available or if you created something +yourself, please let us know!
+ + +-f=ut_documentation_reporter -o="output.txt" you will have to enclose the "output.txt" part as shown--tags=tag1[,tag2[,tag3]]parameter (#157)-r/--random-test-order and -seed/--random-test-order-seed (#139)-D/--dbms_output (#137)orai18n.jar is not on the classpath. This is highly recommended due to some strange behaviour of the jdbc-driver otherwise (#146, #153)-type_mapping) parameter is now interpreted correctly (#143)CompatibilityProxyassumedUtPlsql version. This replaces the former skipCompatibilityCheck parametergetDatabaseVersion is now deprecated in favor of getUtPlsqlVersion and getRealDbPlsqlVersionTestRunnergetOptions returns the current TestRunnerOptions nowhttps://packagecloud.io/utPLSQL/utPLSQL-java-api/packages/java/org.utplsql/java-api-3.1.7.jar
+<dependency>
+ <groupId>org.utplsql</groupId>
+ <artifactId>java-api</artifactId>
+ <version>3.1.7</version>
+</dependency>
+## New features
+json in Oracle 12.2 and above #924tag annotation to enable tagging of tests and suites #66## Enhancements
+dbms_utility.name_resolve #569 #885## Bug fixes
+ut_realtime_reporter missing warnings in test and suite output structures #936join_by / exclude / include invalid syntax on collection in anydata compare #912ut_junit_reporter producing invalid output on failing tests with long failure message #927ut_sonar_test_reporter producing invalid output on failing tests with long failure message #925ut_coverage_cobertura_reporter producing wrong line breaks which breaks the xml validation against DTD #917exclude option for ref cursor where column order was not resolved correctly #911unordered option for ref cursor with null values #914ORA-00907 when comparing ref cursors with BINARY_ columns #899to_be_like in Oracle Database 11.2.0.4 due to Oracle Bug 14402514 #891## Documentation improvements
+## Internal enhancements
+ + + +Today at #apexConn19.
+Sam Nitsche (blogger, presenter, testing & compassionate-coding advocate, utPLSQL-cli & utPLSQL-api developer) met with Kris Rice (Oracle SQLDeveloper, sqlcl, ORDS rock-star, developer, advocate, presenter, mentor)
+As a result, something amazing happened. Within an hour or so, Kris created a fully functional auto-runner for utPLSQL tests within Oracle sqlcl.
+
If you want to use sqlcl to run your tests, each time you compile a package, have a look at this script for sqlcl.
+Huge thank you to Kris and Sam!
+++ + +Amazing things can happen when right people meet at right time in right place.
+
We take all the possible effort to assure utPLSQL can be tested against t all supported Oracle database versions.
+Today, our automation got enriched with Oracle 19c database testing.
+Pavel Kaplya has prepared a new small Docker Image for Oracle 19c.
+Note:
+++You can take advantage of our efforts and build your own small Docker images (non-PDB) using our docker-scripts.
+
utPLSQL is now getting tested against five database versions: +- Oracle 11g XE +- Oracle 12c R1 +- Oracle 12c R2 +- Oracle 18c +- Oracle 19c
+You can see our build process & test results on travis-ci.org/utPLSQL
+All of our deliverable projects use set of tools that are free to sue for Open-Source: +- static code analysis using sonarcloud +- publishing code coverage using coveralls +- deploying java-api artifacts to packagecloud +- deploying utPLSQL-cli artifacts to bintray +- maven plugin publishing into maven repository
+All of our builds must pass quality gates (code quality/tests/code coverage) before we approve and merge pull requests.
+ + +This version of utPLQL-cli is compatible with all versions of utPLSQL from 3.0.0 to 3.1.6. We encourage you to always use the latest version of cli to communicate with a v3 core.
+-q, --quiet parameter-d, --debug parameterutplsql run "sys as sysdba"/pw@connectstring (#115)-t, --timeout parameter (#124)/ and passwords containing @ by encapsulating those in the connectstring with ": utplsql run "my/User"/"P@ssword"@server:1521/Service (#111)v3.1.53.1.5 where to_equal matcher was failing due to privileges when comparing non sql diffable types #870v3.1.43.1.4 where to_be_empty matcher was failing due to privileges #864to_contain matcher for collections and cursors #79unordered_columns (uc) option for cursor comparison to ignore the order of the columns #779 ut_debug_reporter for debug logging #480 ut_realtime_reporter for utPLSQL-SQLDeveloper extension #795ut_output_buffer #840get_reporters_list function #814dbms_lock.sleep to dbms_session for newer DB versions #806ut_runner.is_test #788ut_runner.is_suite #787ut_runner.has_suites #786ANY grants #737 --%context with --%displayname #726How to easily integrate @utPLSQL into @VisualStudio via External Tools.
+ + + + +This version of utPLQL-cli is compatible with all versions of utPLSQL from 3.0.0 to 3.1.3. We encourage you to always use the latest version of cli to communicate with a v3 core.
+utplsql info [user/password@connectstring] #77 utplsql reporters user/password@connecstring ALTER SESSION statements when connecting #101 ut.run (#479)--%throws annotation (#685)--%beforeall, --%beforeeach, --%afterall, --%aftereach annotations with list of procedures to execute (#649)is_empty() matcher (#707)<![CDATA[ text (#643)uninstall_all.sql script that completely removes utPLSQL objects (#673)ut.run() (#679)On April 25th, a major release 3.1.0 of utPLSQL was published on github and the information was not published on our site.
+Right after the release two issues were found resulting in bug fixes and release 3.1.1
+utplsql-cli and idle time exceeds 1 minute (https://github.com/utPLSQL/utPLSQL/issues/652)Important Notice
+++Starting with this release,
+utPLSQL-sql-cliis no longer supported. +UseutPLSQL-clirelease 3.1.0 or above to interact with this and upcoming versions of utPLSQL.
ut_tfs_junit_reporter for MS Team Foundation Server to support old JUnit xml formatut_coverage_cobertura_reporterut_xunit_reporter. The reporter now conforms to the format specification.ut_junit_reporter as a base for ut_xunit_reporter. The ut_xunit_reporter remains active for backward compatibility but is considered depreciatedut_documentation_reporter to display tests annotated--%disabled as DISABLEDutPLSQL-java-api without code changesthrows annotation to simplify writing tests for code that throws an exceptioncontext to enable grouping of tests into sub-suite in a test suite packagehave_count matcher for checking cursor rows/collection elements countinclude() and exclude() extensions to cursor and object/collection data comparisondiff functionality for cursor, object and collection data ut.expect() on closed cursor (#548)Existing state of packages was discarded/invalidated exceptions (ORA-04068/ORA-04061). The whole suite will execute, test result reports will be available and the exception will be re-thrown to the user after the run was finished. (#504)a_include_objects (#511)--%suite and procedure-specific annotations. (#514 / #516)end loop elements (#539)xunit_reporter (#547)ORA-00001: unique constraint (UTP3.UT_COVERAGE_SOURCES_TMP_PK) violated (#568)Both driver files need to be downloaded and placed in utPLSQL-cli/lib folder
This version of java-api is compatible with all versions of utPLSQL from 3.0.0 to 3.1.0. +We encourage you to always use the latest version of cli to communicate with a v3 core.
+Enhancements +- Support for custom reporters. Just call utplsql run user/pass@connstr -f=my_custom_reporter and cli will try to use a database-reporter with the given name +- Assets necessary for CoverageHTMLReporter are written to $outputFileName-assets folder (utPLSQL/utPLSQL-java-api#39) +- Realtime-Feedback: Output to screen is immediate, output to files is in bulks (#68) +- NLS-Support from environment (#56)
+Bugfixes +- The correct usage is now stated in help message (#63) +- Several small improvements
+For more info on improvements and fixes, check out the blog post from Samuel Nitsche
+ + +You may find the client on the download page
+Both driver files need to be downloaded and placed in utPLSQL-cli/lib folder
ut_runner.runut_expectation sub-typesutPLSQL v3.0.2 - released
+Changes in this release
+utPLSQL v3.0.1 - released
+Key features
+Version 3 has reached beta state.
+It can be downloaded from the releases page.
+It's being used now in multiple organizations with great success. The documentation work is progressing. However, we realize that quite a bit of work needs to be done in this area.
+We welcome support requests and discussions, feature requests, and bug reports in the GitHub issues log.
+This is not an April Fools Day Joke, we really release it.
+ + +Version 3 has reached alpha state.
+It can be downloaded from the releases page.
+It's being used now in multiple organizations with great success. The documentation work is progressing. However, we realize that quite a bit of work needs to be done in this area.
+We welcome support requests and discussions, feature requests, and bug reports in the GitHub issues log.
+ + +Version 3 in pre-alpha state
+Work on version 3 of utPLSQL has been moving quickly.
+Nearly every day version 3 has commits to repository with multiple developers contributing.
It won't be long until we are in an alpha status. If your interested in following along or helping out with the project check out the version 3 readme.md
+We welcome support requests and discussions, feature requests, and bug reports in the GitHub issues log.
+ + +Version 2.3.1 has been released.
+This release updates documentation to reflect the move of the project to GitHub.
+Current and past releases can be located on our downloads page.
+ + +Issue #19 to link documentation to the website has been completed.
+Issue #4 to update all URL sourceforge References to GitHub, has also been completed.
+You can visit the Documentation by using the menu item at the top of the page.
+ + +Welcome to the new utPLSQL website. We are still in the early stages of moving to GitHub.
+The Code has already been moved.
+The following still needs to be done:
+ + + +Happy new year! Thanks to Simon Martinelli utPLSQL v3+ is now integrated with PL/SQL Developer IDE
+See details of plugin usage in readme file
+PlsqlDeveloperUtPlsqlPlugin.dll or PlsqlDeveloperUtPlsqlPlugin_x86.dll to the PlugIns directory of your PL/SQL Developer installationBoth utPLSQL-cli and utPLSQL-maven-plugin v3.2.1 are now available, adding support for Oracle Wallet (Secure External Password Store) connections.
+ +/@TNS connections using Oracle Wallet (Secure External Password Store) by @jgebal in #230Full Changelog: v3.2.0...v3.2.1
+Download utPLSQL-cli v3.2.1 here
+-DskipTests and -Dmaven.test.skip by @jgebal in #83Full Changelog: v3.2.0...v3.2.1
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Both driver files need to be downloaded and placed in utPLSQL-cli/lib folder
This version of java-api is compatible with all versions of utPLSQL from 3.0.0 to 3.1.0. +We encourage you to always use the latest version of cli to communicate with a v3 core.
+Enhancements +- Support for custom reporters. Just call utplsql run user/pass@connstr -f=my_custom_reporter and cli will try to use a database-reporter with the given name +- Assets necessary for CoverageHTMLReporter are written to $outputFileName-assets folder (utPLSQL/utPLSQL-java-api#39) +- Realtime-Feedback: Output to screen is immediate, output to files is in bulks (#68) +- NLS-Support from environment (#56)
+Bugfixes +- The correct usage is now stated in help message (#63) +- Several small improvements
+For more info on improvements and fixes, check out the blog post from Samuel Nitsche
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +This version of utPLQL-cli is compatible with all versions of utPLSQL from 3.0.0 to 3.1.3. We encourage you to always use the latest version of cli to communicate with a v3 core.
+utplsql info [user/password@connectstring] #77 utplsql reporters user/password@connecstring ALTER SESSION statements when connecting #101 This version of utPLQL-cli is compatible with all versions of utPLSQL from 3.0.0 to 3.1.6. We encourage you to always use the latest version of cli to communicate with a v3 core.
+-q, --quiet parameter-d, --debug parameterutplsql run "sys as sysdba"/pw@connectstring (#115)-t, --timeout parameter (#124)/ and passwords containing @ by encapsulating those in the connectstring with ": utplsql run "my/User"/"P@ssword"@server:1521/Service (#111)-f=ut_documentation_reporter -o="output.txt" you will have to enclose the "output.txt" part as shown--tags=tag1[,tag2[,tag3]]parameter (#157)-r/--random-test-order and -seed/--random-test-order-seed (#139)-D/--dbms_output (#137)orai18n.jar is not on the classpath. This is highly recommended due to some strange behaviour of the jdbc-driver otherwise (#146, #153)-type_mapping) parameter is now interpreted correctly (#143)a_coverage_schemes option of utPLSQL by @pesse in #180utplsql run has four new options that decide what is included in the coverage report by schema or object name pattern:
| Option | +Meaning | +
|---|---|
-include-schema-expr |
+report coverage only on schemas whose name matches the expression | +
-exclude-schema-expr |
+leave out schemas whose name matches the expression | +
-include-object-expr |
+report coverage only on objects whose name matches the expression | +
-exclude-object-expr |
+leave out objects whose name matches the expression | +
When project files are mapped to database objects (-source_path / -test_path), coverage is already limited to those files.
+The new options are for code that cannot be mapped to project files. They allow for new packages that follow your naming conventions
+to be covered (or left out) automatically, without updating a list of schemas or objects in your pipeline.
utplsql run app/pass@db -p=app -f=ut_coverage_html_reporter -o=coverage.html \
+ -include-schema-expr='^APP_' -exclude-schema-expr='_TEST$' -exclude-object-expr='_TMP$'
+--coverage-schemes and -include are ignored. All exclude options are always applied.-source_path / -test_path).See Filtering objects in coverage reports +and the utPLSQL-cli documentation.
+The utPLSQL Maven plugin supports the same filters (includeSchemaExpr, excludeSchemaExpr, includeObjectExpr, excludeObjectExpr)
+and now documents them in detail.
Full Changelog: v3.2.1...v3.2.2
+This is a maintenance release all dependencies and changes by @PhilippSalvisberg
+Full Changelog: v1.4.1...v2.0.1
+We take all the possible effort to assure utPLSQL can be tested against t all supported Oracle database versions.
+Today, our automation got enriched with Oracle 19c database testing.
+Pavel Kaplya has prepared a new small Docker Image for Oracle 19c.
+Note:
+++You can take advantage of our efforts and build your own small Docker images (non-PDB) using our docker-scripts.
+
utPLSQL is now getting tested against five database versions: +- Oracle 11g XE +- Oracle 12c R1 +- Oracle 12c R2 +- Oracle 18c +- Oracle 19c
+You can see our build process & test results on travis-ci.org/utPLSQL
+All of our deliverable projects use set of tools that are free to sue for Open-Source: +- static code analysis using sonarcloud +- publishing code coverage using coveralls +- deploying java-api artifacts to packagecloud +- deploying utPLSQL-cli artifacts to bintray +- maven plugin publishing into maven repository
+All of our builds must pass quality gates (code quality/tests/code coverage) before we approve and merge pull requests.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +In last months, we took steps to formalise utPLSQL and to give it a legal home under utPSLQL Development Labs Ltd. +With this being almost complete, it is now time to open utPLSQL for sponsorship that will allow for sustained development of this great framework.
+utPLSQL remains free to use and open source (Apache 2.0).
+ + +Sponsorship is a way to collect funds required to allow for work on: and new features and support for new Oracle capabilities, compatibility updates, documentation, issue triage, hosting.
+Sponsorship does not buy influence over the roadmap, and the project stays free for everyone.
+Details are on the Sponsorship page.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +CompatibilityProxyassumedUtPlsql version. This replaces the former skipCompatibilityCheck parametergetDatabaseVersion is now deprecated in favor of getUtPlsqlVersion and getRealDbPlsqlVersionTestRunnergetOptions returns the current TestRunnerOptions nowhttps://packagecloud.io/utPLSQL/utPLSQL-java-api/packages/java/org.utplsql/java-api-3.1.7.jar
+<dependency>
+ <groupId>org.utplsql</groupId>
+ <artifactId>java-api</artifactId>
+ <version>3.1.7</version>
+</dependency>
+Full Changelog: v3.2.1...v3.2.2
+Key features
+utPLSQL v3.0.1 - released
+utPLSQL v3.0.2 - released
+Changes in this release
+ut_runner.runut_expectation sub-types--%throws annotations at runtime #721 #1033Download v3.1.10 release version here
Download v3.1.11 release version here
--%disabled annotation. See documentation. Implemented in: #1183, resolves #610.JSON datatype on Oracle 21c. Implemented in #1181, resolves #1114.to_be_within( distance|pct ).of_(expoected). See documentation. Implemented in #1076, resolves #77.JSON data. Implemented in #1181, resolves #1113.Download v3.1.12 release version here
Download v3.1.13 release version here
and and or operators when running tests by tags by @lwasylow in #1250Full Changelog: v3.1.13...v3.1.14
+ut.run (#479)--%throws annotation (#685)--%beforeall, --%beforeeach, --%afterall, --%aftereach annotations with list of procedures to execute (#649)is_empty() matcher (#707)<![CDATA[ text (#643)uninstall_all.sql script that completely removes utPLSQL objects (#673)ut.run() (#679)ut_runner.is_test #788ut_runner.is_suite #787ut_runner.has_suites #786ANY grants #737 --%context with --%displayname #726to_contain matcher for collections and cursors #79unordered_columns (uc) option for cursor comparison to ignore the order of the columns #779 ut_debug_reporter for debug logging #480 ut_realtime_reporter for utPLSQL-SQLDeveloper extension #795ut_output_buffer #840get_reporters_list function #814dbms_lock.sleep to dbms_session for newer DB versions #806v3.1.5¶3.1.5 where to_equal matcher was failing due to privileges when comparing non sql diffable types #870## New features
+json in Oracle 12.2 and above #924tag annotation to enable tagging of tests and suites #66## Enhancements
+dbms_utility.name_resolve #569 #885## Bug fixes
+ut_realtime_reporter missing warnings in test and suite output structures #936join_by / exclude / include invalid syntax on collection in anydata compare #912ut_junit_reporter producing invalid output on failing tests with long failure message #927ut_sonar_test_reporter producing invalid output on failing tests with long failure message #925ut_coverage_cobertura_reporter producing wrong line breaks which breaks the xml validation against DTD #917exclude option for ref cursor where column order was not resolved correctly #911unordered option for ref cursor with null values #914ORA-00907 when comparing ref cursors with BINARY_ columns #899to_be_like in Oracle Database 11.2.0.4 due to Oracle Bug 14402514 #891## Documentation improvements
+## Internal enhancements
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +--%name to allow for providing custom name for contexts #1016The value of --%context annotation is no longer representing context name.
+This value is now context description (displayname).
+With this change, the --%context annotation is now aligned with --%test and --%suite annotation syntax.
New annotation --%name was introduced to facilitate naming of contexts.
join_by by @lwasylow in #1295Full Changelog: v3.2.01...v3.2.2
+UT_TAP_REPORTER on Oracle 23.26 by @jgebal in #1359--%name annotation. by @jgebal in #1361throws can reference exception without schema or package name by @jgebal in #1365throws works with uninitialized exception variables by @jgebal in #1366Full Changelog: v3.2.2...v.3.2.3
+Version 2.3.1 has been released.
+This release updates documentation to reflect the move of the project to GitHub.
+Current and past releases can be located on our downloads page.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +Version 3 in pre-alpha state
+Work on version 3 of utPLSQL has been moving quickly.
+Nearly every day version 3 has commits to repository with multiple developers contributing.
It won't be long until we are in an alpha status. If your interested in following along or helping out with the project check out the version 3 readme.md
+We welcome support requests and discussions, feature requests, and bug reports in the GitHub issues log.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +Version 3 has reached alpha state.
+It can be downloaded from the releases page.
+It's being used now in multiple organizations with great success. The documentation work is progressing. However, we realize that quite a bit of work needs to be done in this area.
+We welcome support requests and discussions, feature requests, and bug reports in the GitHub issues log.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +Version 3 has reached beta state.
+It can be downloaded from the releases page.
+It's being used now in multiple organizations with great success. The documentation work is progressing. However, we realize that quite a bit of work needs to be done in this area.
+We welcome support requests and discussions, feature requests, and bug reports in the GitHub issues log.
+This is not an April Fools Day Joke, we really release it.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +We've been busy improving the utPLSQL website experience over the past couple of days.
+ + +The top navigation bar shared across all utPLSQL sites has been redesigned and refactored. +It is now more consistent and makes it easier to navigate utPLSQL project and organization's pages.
+The theme toggle has been upgraded from a simple light/dark switch to a three-way control:
+Your choice is remembered across visits.
+The Announcements are now presented in a blog-like style with categories section expanded by default, making it easier to find relevant announcements at a glance. +The archive by year has been removed in favour of a cleaner post listing on the index page.
+We hope these improvements make the site more pleasant to use. +Feel free to share feedback in the GitHub Discussions.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +Welcome to the new utPLSQL website. We are still in the early stages of moving to GitHub.
+The Code has already been moved.
+The following still needs to be done:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +You may find the client on the download page
+Both driver files need to be downloaded and placed in utPLSQL-cli/lib folder
0&&i[i.length-1])&&(p[0]===6||p[0]===2)){r=0;continue}if(p[0]===3&&(!i||p[1]>i[0]&&p[1]=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function K(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var o=r.call(e),n,i=[],s;try{for(;(t===void 0||t-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(a){s={error:a}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(s)throw s.error}}return i}function B(e,t,r){if(r||arguments.length===2)for(var o=0,n=t.length,i;o