|
| 1 | +For version 3 has been a complete rewrite of the framework, the way it can be used is different to |
| 2 | +the previous versions, but also more in line with other modern unit-testing frameworks like JUnit and RSpec. |
| 3 | + |
| 4 | +There is a [migration tool](https://github.com/utPLSQL/utPLSQL-v2-v3-migration) that can help you to migrate your existing utPLSQL v2 tests to the v3 capabilities. |
| 5 | + |
| 6 | +# Feature comparison |
| 7 | + |
| 8 | +| Feature | Version 2 | Version 3 | |
| 9 | +| -------------------------------------- | ---------------------- | ---------------------- | |
| 10 | +| Easy to install | Yes | Yes | |
| 11 | +| Documentation | Yes | Yes | |
| 12 | +| License | GPL v2 | Apache 2.0 | |
| 13 | +| **Tests Creation** | | | |
| 14 | +| Declarative test configuration | No | Yes - Annotations<sup>1</sup>| |
| 15 | +| Tests as Packages | Yes | Yes | |
| 16 | +| Multiple Tests in a single Package | Yes | Yes | |
| 17 | +| Optional Setup/Teardown | No | Yes | |
| 18 | +| Different Setup/Teardown <br/> For Each Test in a Single Package| No | Yes - Annotations<sup>1</sup> | |
| 19 | +| Suite Definition Storage | Tables | Package - Annotations<sup>1</sup> | |
| 20 | +| Multiple Suites | Yes | Yes | |
| 21 | +| Suites can contain Suites | No | Yes | |
| 22 | +| Automatic Test detection | No | Yes - Annotations<sup>1</sup>| |
| 23 | +| Unconstrained naming of Test packages | No - prefixes | Yes - name not relevant| |
| 24 | +| Require Prefix on Test procedures | No - prefixes | Yes - name not relevant| |
| 25 | +| Auto Compilation of Tests | Yes | No (Let us know if you use this) | |
| 26 | +| Assertion Library | 30 assertions<sup>2</sup> | 26 matchers (13 + 13 negated) | |
| 27 | +| Extendable assertions | No | Yes - custom matchers | |
| 28 | +| PLSQL Record Assertions | generated code through **utRecEq** Package | [possible on Oracle 12c+](https://oracle-base.com/articles/12c/using-the-table-operator-with-locally-defined-types-in-plsql-12cr1) using [cursor matchers](userguide/expectations.md#comparing-cursors)| |
| 29 | +| Test Skeleton Generation | Yes | No (Let us know if you use this) | |
| 30 | +| **Test Execution<sup>3</sup>** | | | |
| 31 | +| Single Test Package Execution | Yes | Yes | |
| 32 | +| Single Test Procedure Execution | No | Yes | |
| 33 | +| Test Suite Execution | Yes | Yes | |
| 34 | +| Subset of Suite Execution | No | Yes | |
| 35 | +| Multiple Suite Execution | No | Yes | |
| 36 | +| Organizing Suites into hierarchies | No | Yes | |
| 37 | +| **Code Coverage Reporting** | No | Yes | |
| 38 | +| Html Coverage Report | No | Yes | |
| 39 | +| Sonar XML Coverage Report | No | Yes | |
| 40 | +| Coveralls Json Coverage Report | No | Yes | |
| 41 | +| Framework Transaction Control | No | Yes - Annotations<sup>1</sup> | |
| 42 | +| **Test Output** | | | |
| 43 | +| Real-time test execution progress reporting | No | Yes | |
| 44 | +| Multiple Output Reporters can be used during test execution | No| Yes | |
| 45 | +| DBMS_OUTPUT | Yes | Yes (clean formatting) | |
| 46 | +| File | Yes (to db server only)| Yes (on client side) | |
| 47 | +| Stored in Table | Yes | No (can be added as custom reporter) | |
| 48 | +| XUnit format support | No | Yes | |
| 49 | +| HTML Format | Yes | No | |
| 50 | +| Custom Output reporter | Yes-needs configuration| Yes - no config needed | |
| 51 | + |
| 52 | +<sup>1</sup> 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. |
| 53 | + |
| 54 | +<sup>2</sup> **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 |
| 55 | + |
| 56 | +<sup>3</sup> 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. |
0 commit comments