Skip to content

For version 3 has been a complete rewrite of the framework, the way it can be used is different to the previous versions, but also more in line with other modern unit-testing frameworks like JUnit and RSpec.

There is a migration tool that can help you to migrate your existing utPLSQL v2 tests to the v3 capabilities.

Feature comparison

Feature Version 2 Version 3
Easy to install Yes Yes
Documentation Yes Yes
License GPL v2 Apache 2.0
Tests Creation
Declarative test configuration No Yes - Annotations1
Tests as Packages Yes Yes
Multiple Tests in a single Package Yes Yes
Optional Setup/Teardown No Yes
Different Setup/Teardown
For Each Test in a Single Package
No Yes - Annotations1
Suite Definition Storage Tables Package - Annotations1
Multiple Suites Yes Yes
Suites can contain Suites No Yes
Automatic Test detection No Yes - Annotations1
Unconstrained naming of Test packages No - prefixes Yes - name not relevant
Require Prefix on Test procedures No - prefixes Yes - name not relevant
Auto Compilation of Tests Yes No (Let us know if you use this)
Assertion Library 30 assertions2 26 matchers (13 + 13 negated)
Extendable assertions No Yes - custom matchers
PLSQL Record Assertions generated code through utRecEq Package possible on Oracle 12c+ using cursor matchers
Test Skeleton Generation Yes No (Let us know if you use this)
Test Execution3
Single Test Package Execution Yes Yes
Single Test Procedure Execution No Yes
Test Suite Execution Yes Yes
Subset of Suite Execution No Yes
Multiple Suite Execution No Yes
Organizing Suites into hierarchies No Yes
Code Coverage Reporting No Yes
Html Coverage Report No Yes
Sonar XML Coverage Report No Yes
Coveralls Json Coverage Report No Yes
Framework Transaction Control No Yes - Annotations1
Test Output
Real-time test execution progress reporting No Yes
Multiple Output Reporters can be used during test execution No Yes
DBMS_OUTPUT Yes Yes (clean formatting)
File Yes (to db server only) Yes (on client side)
Stored in Table Yes No (can be added as custom reporter)
XUnit format support No Yes
HTML Format Yes No
Custom Output reporter Yes-needs configuration Yes - no config needed

1 Annotations are specially formatted comments in your package specification. This enables declarative test configuration that is coupled with the source code. See Documentation for more details.

2 utAssert2 package - Contains 59 Assertions - 2 Not implemented = 57, 28 are duplicated only change on outcome_in parameter 57-28 = 29, utPipe package - Contains 1 Assertion 29 + 1 = 30

3 Test execution comparison is in a single call so the results are combined. We know it was always possible to group in any way with multiple calls. But that may not be desired under a CI system where you want a single JUnit XML Output.


Last update: October 20, 2019 23:31:45
Created: October 11, 2019 15:14:07