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.
Created: October 11, 2019 15:14:07