From dca0f702be60d655ba84e66dfdb59ed5df95f1b6 Mon Sep 17 00:00:00 2001 From: Jacek Date: Sun, 7 May 2017 02:32:48 +0100 Subject: [PATCH] Updated readme. Added reference on comparing PLSQL records and collections on Oracle 12c --- docs/userguide/expectations.md | 7 +++ readme.md | 85 ++++++++++++++++++---------------- 2 files changed, 53 insertions(+), 39 deletions(-) diff --git a/docs/userguide/expectations.md b/docs/userguide/expectations.md index 6c7b71fa2..2dbae4ab1 100644 --- a/docs/userguide/expectations.md +++ b/docs/userguide/expectations.md @@ -232,6 +232,13 @@ begin end; ``` +### Using cursors to compare PLSQL records on Oracle 12c + +There is a great article by Tim Hall on [using the TABLE Operator with Locally Defined Types in PL/SQL](https://oracle-base.com/articles/12c/using-the-table-operator-with-locally-defined-types-in-plsql-12cr1). +If you are on Oracle 12c, you can benefit from this feature to make comparison of PLSQL records and tables super-simple in utPLSQL. +You can use the feature described in article to convert PLSQL records and collection types to cursors. Complex cursor data can then be compared in utPLQL. + + ### Comparing cursor data containing DATE fields **Important note** diff --git a/readme.md b/readme.md index 6e38f56c7..c217ddc9c 100644 --- a/readme.md +++ b/readme.md @@ -57,45 +57,52 @@ To sign up to the chat use [this link](http://utplsql-slack-invite.herokuapp.com __Version 2 to Version 3 Comparison__ -The following table is a work in progress right now, and **will** change. If you have great idea that you would like to see in version 3 please create an [issue on GitHub](https://github.com/utPLSQL/utPLSQL/issues) or discuss it with us in the [Slack chat rooms](http://utplsql-slack-invite.herokuapp.com/). - - -| Feature | Version 2 | Version 3 | -| ------------------------- | ------------- | ---------------------- | -| Easy to install | Yes | Yes | -| Documentation | Yes | Sparse - in progress | -| License | GPL v2 | Apache 2.0 | -| **Tests Creation** | | | -| Declarative test configuration coupled with the source code | No | Yes - Annotations1| -| Tests as Packages | Yes | Yes | -| Multiple Tests in a single Package | Yes | Yes | -| Different Setup/Teardown
For Each Test in a Single Package | No | Yes | -| Suite Definition Storage | Tables | Package - Annotations1 | -| Multiple Suites | Yes | Yes | -| Suites can contain Suites | No | Yes | -| Automatic Test detection | No | Yes - Annotations1 | -| Require Prefix on Test packages | Yes | No | -| Require Prefix on Test procedures | Yes | No | -| Auto Compilation of Tests | Yes | No (Let us know if you use this) | -| Assertion Library | 30 Assertions2 | Still under development | -| Custom Record Assertions | requires generated code through **utRecEq** Package | On Roadmap | -| Test Skeleton Generation | Yes | On Roadmap | -| **Test Execution3** | | | -| Single Test Execution | Yes | Yes | -| Test Suite Execution | Yes | Yes | -| Subset of Suite Execution | No | Yes | -| Multiple Suite Execution | No | Yes | -| Code Coverage | No | On Roadmap | -| Framework Transaction Control | No | Yes - Optional | -| **Test Output** | | | -| Multiple Output Reporters can be used during test execution | No | Yes | -| DBMS_OUTPUT | Yes | Yes (format changed) | -| Stored in Table | Yes | On Roadmap | -| XUnit XML Format | No | Yes | -| HTML Format | Yes | On Roadmap | -| File | Yes | On Roadmap | -| Realtime test execution results | No | Yes | -| Custom Output reporter | Yes | Yes | +If you have great feature in mind, that you would like to see in utPLSQL v3 please create an [issue on GitHub](https://github.com/utPLSQL/utPLSQL/issues) or discuss it with us in the [Slack chat rooms](http://utplsql-slack-invite.herokuapp.com/). + + +| 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 megated) | +| Extendable assertions | No | Yes - custom matchers | +| 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](docs/userguide/expectations.md#comparing-cursors)| +| Test Skeleton Generation | Yes | On Roadmap | +| **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.