@jgebal jgebal released this Jul 22, 2018

Assets 6

Changes in release 3.1.2

New features

  • Added ability to join and compare cursor content by specific columns (PK/UK) #453
  • Added support for comma separated list of suite paths/packages when calling ut.run #479
  • Added ability to run a test package that got invalidated due to dependency invalidation #489
  • Added support for package level constants and predefined exceptions in --%throws annotation #685
  • Added support for standalone --%beforeall, --%beforeeach, --%afterall, --%aftereach annotations with list of procedures to execute #649
  • Added support for list of procedure names in before/after annotations #649
  • Added support for BLOB/CLOB in is_empty() matcher #707


  • utPLSQL will now provide additional warnings, when unsupported annotations are found in a unit test suite package #624
  • utPLSQL will now produce valid XML in UT_JUNIT_REPORTER when dbms_output or test results contain <![CDATA[ text #643
  • improved installation process for non-DBA users #658
  • added uninstall_all.sql script that completely removes utPLSQL objects #673
  • Changed the way contexts are named #674
  • Added ability to pass client encoding information for XML/HTML reporting (requires utPLSQL-cli 3.1.1) #676
  • Exposed base objects for expectations, so that IDE like DataGrip can provide auto-complete #675
  • Both context-name as well as procedure inside context can now be passed as parameter to ut.run() #679
  • Added validation of privileges before installation of utPLSQL #693


  • UT_JUNIT_REPORTER does not report tests when procedure names are not all lower-case #659 #696
  • Fixed utPLSQL installation order to avoid warnings/failures on install #657
  • Fixed uninstall process for utPLSQL #673
  • Fixed syntax errors in HTML coverage report #681 #682
  • Fixed install requirements documentation #687
  • Fixed capturing of DBMS_OUTPUT buffer at the start of test run #686

Internal enhancements

  • Added continuous testing of XML/HTML reports format #684
  • Added sonarcloud branch-based and PR code analysis #708
  • Added ability to trigger builds on sub-projects #501

@jgebal jgebal released this Apr 29, 2018 · 261 commits to master since this release

Assets 6

Changes in this release


  • #653 Block coverage reporting doesn't work on schema other than framework owner
  • #652 Reporter threads timeout and do not produce outputs when running with utplsql-cli and idle time exceeds 1 minute.

@jgebal jgebal released this Apr 25, 2018 · 279 commits to master since this release

Assets 6

Important Notice

Starting with this release, utPLSQL-sql-cli is no longer supported.
Use utPLSQL-cli release 3.1.0 or above to interact with this and upcoming versions of utPLSQL.

Changes in this release



  • Added support for extended block coverage on Oracle 12.2 and above. Coverage reporters will now indicate partly covered lines (where applicable by coverage format).
  • Added new ut_tfs_junit_reporter for MS Team Foundation Server to support old JUnit xml format
  • Added new coverage reporter ut_coverage_cobertura_reporter
  • Fixed compatibility issues with ut_xunit_reporter. The reporter now conforms to the format specification.
  • Added ut_junit_reporter as a base for ut_xunit_reporter. The ut_xunit_reporter remains active for backward compatibility but is considered depreciated
  • Added reporting of differences when comparing cursors, oracle object and table types
  • Aligned ut_documentation_reporter to display tests annotated--%disabled as DISABLED
  • Added support for reporters that don't provide output to the API (reporters saving data to DB)
  • Improved API so that it's possible to support custom reporters from utPLSQL-java-api without code changes


  • added throws annotation to simplify writing tests for code that throws an exception
  • added context to enable grouping of tests into sub-suite in a test suite package
  • added warnings on invalid/misplaced annotations
  • added support for multiple declarations of before/after procedures
  • added propagation of rollback type defined on parent suite within suitepath


  • Added have_count matcher for checking cursor rows/collection elements count
  • Added include() and exclude() extensions to cursor and object/collection data comparison
  • Added diff functionality for cursor, object and collection data
  • When comparing cursors, column data-type is now also checked for equality
  • #548 - Changed behavior of execution of ut.expect() on closed cursor.
  • Added support for cursors with implicitly named columns

General improvements

  • Output buffer for reporting is now reporter-agnostic.
  • cli is no longer not interacting with output buffer but uses reporters to retrieve data instead.
  • Added ability to mark expectation syntax as deprecated and report warnings on deprecation
  • Added ability to get a list of annotations for a schema
  • Refactoring of annotation parsing
  • Refactoring of suite building
  • Migrated part of old script-based tests to new utPLSQL v3 tests
  • Documentation fixes and improvements
  • Reporters now provide a method to get description
  • Test execution continues even when encountered 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)


  • #511 Coverage schema had to be explicitly provided, even when using a_include_objects
  • #514 / #516 utPLSQL fails to run, when one of suite packages has no newline between --%suite and procedure-specific annotations.
  • #539 Fixed false-negative code coverage reporting on labelled end loop elements
  • #547 Fixed issue with invalid suite grouping when running xunit_reporter
  • #562 Code coverage was always showing first report gathered in a session
  • #572 Wrong format of time in XUnit_reporter when running on German locale (using comma as decimal separator)
  • #601 Fixed issue with wrong exception getting thrown when suite failed and there was a pending distributed transaction
  • #568 Fixed file-mapper issue where two files were mapped into the same object and caused ORA-00001: unique constraint (UTP3.UT_COVERAGE_SOURCES_TMP_PK) violated

@jgebal jgebal released this Nov 3, 2017 · 723 commits to master since this release

Assets 6


  • #509(#506) Savepoint name is now generated from sys_guid to avoid issues on Windows-based Oracle instances
  • #500(#499/#487) Fixed XML/HTML special characters in reporters and unified handling of failure reporting across reporters


  • #503 Fixed link to contributing guide in the doc
  • #502 Added example of handling exceptions to documentation
  • #486(#485) Added example for custom expectation-fail message in docs


  • #497(#478) Removed overloaded procedures ut_runner.run
  • #496(#441) utPLSQL will not not open new transaction when running tests
  • #495(#482) Added buffering of dbms_output before the run
  • #494 Removed ut_expectation sub-types
  • #492 Restructured annotations and added caching to improve framework start-up time

@Pazus Pazus released this Aug 30, 2017 · 782 commits to master since this release

Assets 6

Changes in this release

New features

#242 Added ability to exclude columns/attributes for cursor/object/collection comparison. Xpath can be used for column/attribute exclusion
#428 Added reporting to module, action, client_info fields of the v$session.
#408 Calling ut_runner.run procedures can now raise exception if any test failed
#430 Added ability to check version compatibility ut_runner.version_compatibility_check

Improvements and fixes

#469 Fixed bug with framework executing multiple packages with similar names when using suitepaths
#462 Cursor comparison now supports cursors on Global Temporary Table
#461 Increased allowed chars for annotation name to 250
#445 Cursor comparison now supports cursors with more than 1000 rows
#431 dba_ views are now used (if available), increasing performance of the framework
#430 Changed how version number reporting in functions ut_runner.version, ut_run.version
#364 Improved warning message when implicit commit occurs
#413 Fixed Sonar Unit Test reporting for test suites with suitepth
#435 Fixed problem with identifying annotations when windows newline is used in package sources

Documentation fixes

#467 Moved CONTRIBUTING.md to project root and updated content
#434 Fixed coverage format documentation
#439 Small documentation fixes

Internal improvements

#450 Added self-testing using released version of utPLSQL
#438 Sonar reporting disabled for PRs
#424 Moved to project-owned Docker images created by scripts from utPLSQL/docker-scripts project
#212 Added source_path and test_path parameters for coverage reporters
#420 Changed the way ut_file_mapper handles default parameters
#417 Improved performance and stability of access to internal framework tables
#425 Updated myStats library to v3
#402 ut_output_buffer is now abstracted from caller

@jgebal jgebal released this Jul 18, 2017 · 1008 commits to master since this release

Assets 6

Changes in this release


#399 Documentation now refers to migration project
#386 Documentation now refers to a valid object name: ut_file_mapping
#362 Install and Uninstall scripts are now much more readable
#361 Install guide now provides snippet on how to download latest release on Windows


#396 Added override user/password/tablespace for install_headless
#384 Installation is now smooth even if profiler tables already exist

Internal improvements

#388 Improved reporting from RunTest
#363 Fixed publishing of release documentation history

Improvements and fixes

#407 Fixed rare issue with ORA-22813: operand value exceeds system limits
#403 Stack trace is now properly parsed on all machines
#397 The --%disabled annotation on suite level is now reporting all tests as disabled
#395 Coverage reporting is now properly filtering test packages on that use suitepath
#390 Line of code for failed expectation is now also shown for unit tests owned by other users
#380 Line no of failed test is now properly reported when using ut.fail
#375 Annotation parameter list can now have spaces before/after brackets
#373 Warnings in documentation reporter are now properly numbered
#372 Documentation reporter is now providing a timing information for each test
#370 by xUnit reporter now displays name of the package/procedure if suite/test has no description
#369 Fixed errors with multi-byte characters in conversion from/to clob

@Pazus Pazus released this Jun 14, 2017 · 1120 commits to master since this release

Assets 6

Issues solved in the release:

  • #346 ORA-22921: length of input buffer is smaller than amount requested bug
  • #337 Suite/test description gets cut after the inner closing bracket bug
  • #336 Suite/test description gets cut after comma bug
  • #334 Bad/misleading failure message when comparing different datatypes bug enhancement
  • #331 running tests in a user containing '$' bug
  • #322 Fix prompts for install of synonyms bug
  • #326 Fix to HTML Coverage
  • #332 fixed failed expectation source code line reporting on12c R2

Other changes

  • #320 Fix deployment to gh-pages branch on TAG bug
  • #340, #342, #349 small issues in the documentation
  • #328 fixing build number in version
  • #353 Add MD5 checsum to release builds enhancement task
Assets 4

First official release of fully rewritten utPLSQL.
The unit testing framework for Oracle database.

Key features

  • Compatible with and tested on Oracle 11.2, 12.1 and 12.2
  • multiple ways to compare data with matchers
  • native comparison of complex types (objects/collections/cursors)
  • in-depth and consistent reporting of failures and errors for tests
  • tests identified and configured by annotations
  • hierarchies of test suites configured controlled by annotations
  • automatic (configurable) transaction control using annotations
  • Build-in coverage reporting
  • Integration with SonarQube, Coveralls, Jenkins and Teamcity using reporters
  • plugin architecture for reporters and matchers
  • flexible and simple test invocation
  • multi-reporting and test real-time progress test-run from using utPLSQL-sql-cli

@jgebal jgebal released this May 14, 2017 · 1329 commits to master since this release

Assets 4
Merge pull request #261 from jgebal/feature/release_archive_fix

Fixed missing docs.

@utplsql-build utplsql-build released this Jan 18, 2017 · 1659 commits to develop since this release

Assets 4

This is the first alpha release of version 3.

For details on changes it's recommend to review the readme.md