Skip to content

releases

Changes in release 3.1.2

Compatibility

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.

New Features

  • New command utplsql info [user/password@connectstring] #77
  • New command utplsql reporters user/password@connecstring
  • Cli tries to connect to oracle via thick-driver first and use thin-driver as fallback #88 #90 #91

Enhancements

  • Limit number of connections to number of reporters+1 #85
  • Include JAXB library so utPLSQL-cli can be run on java 9+10 #82
  • There is however still a problem when using HTMLCoverageReporter and Java 9/10
  • Improved documentation and help-command #31
  • An existant NLS_LANG-variable will now lead to corresponding ALTER SESSION statements when connecting #101

Bugfixes

  • HTML Coverage assets are placed and referenced correctly when using output file in subdirectory #94
  • Java-locale is now correctly derived from LC_ALL or LANG environment variable, not from NLS_LANG #101

Internal enhancements

  • Refactoring of Command architecture
  • Refactoring of Connection handling
  • Improved Error handling

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)

Enchancements

  • 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)

Bug-fixes

  • 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)

Announcing utPLSQL 3.1.0 and 3.1.1

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

Version 3.1.1 bug-fixes

Release 3.1.1 download page

Version 3.1.0 release notes

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.

Enhancements

Reporting
  • 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
Annotations
  • 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
Expectations
  • 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
  • Changed behavior of execution of ut.expect() on closed cursor (#548)
  • 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)

Bug-fixes

  • Coverage schema had to be explicitly provided, even when using a_include_objects (#511)
  • utPLSQL fails to run, when one of suite packages has no newline between --%suite and procedure-specific annotations. (#514 / #516)
  • Fixed false-negative code coverage reporting on labelled end loop elements (#539)
  • Fixed issue with invalid suite grouping when running xunit_reporter (#547)
  • Code coverage was always showing first report gathered in a session (#562)
  • Wrong format of time in XUnit_reporter when running on German locale (using comma as decimal separator) (#572)
  • Fixed issue with wrong exception getting thrown when suite failed and there was a pending distributed transaction (#601)
  • 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 (#568)

utPLSQL-cli v3.1.0 released

utPLSQL-cli v3.1.0 released

Release download page Readme

Requirements

  • Java8
  • Oracle JDBC driver file (ojdbc8.jar) is required
  • Oracle i18n driver file (orai18n.jar) is required for national character-set support

Both driver files need to be downloaded and placed in utPLSQL-cli/lib folder

Compatibility

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.

Changes in this release

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

We've released utPLSQL-cli

First official release of command line client for utPLSQL.

You may find the client on the download page

Requirements

  • Java8
  • Oracle JDBC driver file (ojdbc8.jar) is required
  • Oracle i18n driver file (orai18n.jar) is required for national character-set support

Both driver files need to be downloaded and placed in utPLSQL-cli/lib folder

Key features

  • connectivity to Oracle database without Oracle client software (needs JDBC driver)
  • support for multiple reporters and multiple output files
  • real-time reporting to screen (depends on reporter implementation)
  • documentation reporting in color
  • mapping of project files to database objects (needed for Sonar reporting)
  • support for customized project file-mapping rules

Supported utPLSQL versions

  • utPLSQL v3.0.0
  • utPLSQL v3.0.1
  • utPLSQL v3.0.2
  • utPLSQL v3.0.3
  • utPLSQL v3.0.4

Changes in this release

Improvements and fixes

  • Removed overloaded procedures ut_runner.run
  • utPLSQL will not not open new transaction when running tests
  • Added buffering of dbms_output before the run
  • Removed ut_expectation sub-types
  • Restructured annotations and added caching to improve framework start-up time
  • Savepoint name is now generated from sys_guid to avoid issues on Windows-based Oracle instances
  • Fixed XML/HTML special characters in reporters
  • Unified handling of failure reporting across reporters

Documentation fixes

  • Fixed link to contributing guide in the doc
  • Added example of handling exceptions to documentation
  • Added example for custom expectation-fail message in docs

Changes in this release

New features

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

Improvements and fixes

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

Documentation fixes

  • Moved CONTRIBUTING.md to project root and updated content
  • Fixed coverage format documentation
  • Small documentation fixes

Internal improvements

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

utPLSQL v3.0.2 - released

utPLSQL v3.0.2 - released

Changes in this release

Documentation

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

Installation

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

Internal improvements

  • Improved reporting from RunTest
  • Fixed publishing of release documentation history

Improvements and fixes

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

utPLSQL v3.0.1 - released

utPLSQL v3.0.1 - released

Issues solved in the release

  • Suite/test description now support commas and inner closing brackets
  • Failure message when comparing different datatypes was improved
  • Users, packages and procedures with $ and # in the name are now supported
  • Improved reporting on the line of the expectation failed in the test procedure
  • Fixed but with multibyte character sets
  • Fixed prompts for install of synonyms bug
  • Fixed HTML Coverage reporting on schema

Other changes

  • Add MD5 checksum to releases
  • Fix deployment to gh-pages branch on TAG bug
  • Small issues in the documentation

utPLSQL v3.0.0 - released!

First official release of fully rewritten utPLSQL.

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