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
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 forut_xunit_reporter
. Theut_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
asDISABLED
- 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()
andexclude()
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)
Bug-fixes:
- #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