diff --git a/docs/userguide/upgrade.md b/docs/userguide/upgrade.md
index 2105ded75..3da76e1f8 100644
--- a/docs/userguide/upgrade.md
+++ b/docs/userguide/upgrade.md
@@ -1,5 +1,7 @@
-# How to upgrade from prior versions
+# Upgrading from version 2
+
+utPLSQL v3 is a total rewrite of the framework.
+To make utPLSQL v2 packages run on v3 framework you need to install and execute migration utility.
+See the [utPLSQL-v2-v3-migration](https://github.com/utPLSQL/utPLSQL-v2-v3-migration) project for details on how to install and execute the migration.
-utPLSQL v3 is a total rewrite of the previous version. There is no automated way to migrate tests from version 2.x to version 3.
-There are plans to build a mapping/bridging solution that would allow running v2 tests using v3 framework.
diff --git a/readme.md b/readme.md
index 8a1053f01..45da0c261 100644
--- a/readme.md
+++ b/readme.md
@@ -1,13 +1,13 @@
# utPLSQL v3 | Powerful PL/SQL Unit Testing Framework
[](https://github.com/utPLSQL/utPLSQL/releases)
-[](https://www.apache.org/licenses/LICENSE-2.0)
+[](https://www.apache.org/licenses/LICENSE-2.0)
[](http://utplsql-slack-invite.herokuapp.com/)
[](https://twitter.com/utPLSQL)
[](https://travis-ci.org/utPLSQL/utPLSQL)
[](https://travis-ci.org/utPLSQL/utPLSQL)
-[](https://sonarqube.com/dashboard/index?id=utPLSQL%3AutPLSQL%3Adevelop)
+[](https://sonarcloud.io/dashboard/index?id=utPLSQL%3AutPLSQL%3Adevelop)
[](https://coveralls.io/github/utPLSQL/utPLSQL?branch=develop)
----------
@@ -47,87 +47,48 @@ Full documentation of the project is automatically published on [utPLSQL github
[Cheat-sheet](https://www.cheatography.com/jgebal/cheat-sheets/utplsql-v3/#downloads)
-# Contributing to the project
-
-We welcome new developers to join our community and contribute to the utPLSQL project.
-If you are interested in helping please read our [guide to contributing](docs/about/CONTRIBUTING.md)
-The best place to start is to read the documentation and get familiar with the existing code base.
-A [slack chat](https://utplsql.slack.com/) is the place to go if you want to talk with team members.
-To sign up to the chat use [this link](http://utplsql-slack-invite.herokuapp.com/)
-
+# Installation
-[__Authors__](docs/about/authors.md)
+To install the utPLSQL into a new database schema and grant it to public, execute the script `install_headless.sql`.
+This will create a new user `UT3`, grant all required privileges to that user and create PUBLIC synonyms needed.
-__Version 2 to Version 3 Comparison__
+For detailed instructions on other install options see the [Install Guide](docs/userguide/install.md)
-If you have a 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/).
+# Running tests
-| 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](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 |
+To execute using development IDE (TOAD/SQLDeveloper/PLSQLDeveloper/other) use one of following commands.
+```sql
+begin
+ ut.run();
+end;
+/
+```
+```sql
+exec ut.run();
+```
+```sql
+select * from table(ut.run());
+```
-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.
+The above commands will run all the suites in the current schema and provide report to dbms_output or as a select statement.
-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
+# Command lien clients
-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.
+To have more control over how the tests are invoked, use one of the utPLSQL command line clients: [utPLSQL-sql-cli](https://github.com/utPLSQL/utPLSQL-sql-cli) or [utPLSQL-cli](https://github.com/utPLSQL/utPLSQL-cli).
-# Installation
+To use `utPLSQL-sql-cli` you will need to have SQLPlus installed. `utPLSQL-cli` is Java project, so no additional software is needed.
-To simply install the utPLSQL into a new database schema and grant it to public, execute the script `install_headless.sql`.
+Amongst many benefits they provide ability to:
+* see the progress of test execution for long-running tests - real-time reporting
+* use many reporting formats simultaneously and save reports to files (publish)
+* map your project source files and test files into database objects
-This will create a new user `UT3` with password `UT3`, grant all required privileges to that user and create PUBLIC synonyms needed to use the utPLSQL framework.
-Example invocation of the script from command line:
-```bash
-cd source
-sqlplus admin/admins_password@xe @@install_headless.sql
-```
+# Example unit test packages
-For detailed instructions on other install options see the [Install Guide](docs/userguide/install.md)
+**For examples of using Continuous Integration Server & SonarCloud with utPLSQL see the [utPLSQL demo project](https://github.com/utPLSQL/utPLSQL-demo-project/).**
-# Example unit test packages
The below test package is a fully-functional Unit Test package for testing a [`betwnstr` function](examples/between_string/betwnstr.sql).
The package specification is [annotated](docs/userguide/annotations.md) with special comments.
@@ -179,25 +140,7 @@ end;
/
```
-Have a look at the [utPLSQL demo project](https://github.com/utPLSQL/utPLSQL-demo-project/).
-The project is installing few example packages from the [source directory](https://github.com/utPLSQL/utPLSQL-demo-project/tree/develop/source),
-installing the test packages from [test directory](https://github.com/utPLSQL/utPLSQL-demo-project/tree/develop/test)
-and finally executing all the tests using [Travis CI](https://travis-ci.org/utPLSQL/utPLSQL-demo-project).
-The [test results](https://sonarqube.com/component_measures/metric/tests/list?id=utPLSQL%3AutPLSQL-demo-project)
- together with [code coverage](https://sonarqube.com/component_measures/metric/coverage/list?id=utPLSQL%3AutPLSQL-demo-project)
- are published to the [projects Sonar page](https://sonarqube.com/dashboard?id=utPLSQL%3AutPLSQL-demo-project) after every successful build.
-
-# Running tests
-
-To execute using development IDE (TOAD/SQLDeveloper/PLSQLDeveloper/other) just run the following.
-```sql
-begin
- ut.run();
-end;
-/
-```
-Will run all the suites in the current schema and provide documentation report using dbms_output
-
+Outputs from running the above tests
```
Between string function
Returns substring from start position to end position
@@ -209,12 +152,77 @@ Finished in .036027 seconds
4 tests, 0 failures
```
-To execute your tests from command line, you will need a oracle sql client like SQLPlus or [SQLcl](http://www.oracle.com/technetwork/developer-tools/sqlcl/overview/index.html)
-You may benefit from using the [ut_run](https://github.com/utPLSQL/utPLSQL-sql-cli) script to execute your tests if you want to achieve one of the following:
-* see the progress of test execution for long-running tests
-* have output to screen with one output format (text) and at the same time have output to file in other format (xunit)
+# Contributing to the project
+
+We welcome new developers to join our community and contribute to the utPLSQL project.
+If you are interested in helping please read our [guide to contributing](docs/about/CONTRIBUTING.md)
+The best place to start is to read the documentation and get familiar with the existing code base.
+A [slack chat](https://utplsql.slack.com/) is the place to go if you want to talk with team members.
+To sign up to the chat use [this link](http://utplsql-slack-invite.herokuapp.com/)
+
+
+----------
+[__Authors__](docs/about/authors.md)
+
+----------
+__Version 2 to Version 3 Comparison__
+
+If you have a 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 negated) |
+| 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 | 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.
+
+
+----------
__Project Directories__
* .travis - contains files needed for travis-ci integration
diff --git a/source/license.txt b/source/license.txt
deleted file mode 100644
index 136cb3fc3..000000000
--- a/source/license.txt
+++ /dev/null
@@ -1,205 +0,0 @@
-Title: License
-(start example)
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "{}"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright {yyyy} {name of copyright owner}
-
- Licensed under the Apache License, Version 2.0 (the "License"):
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-(end )
diff --git a/source/readme.md b/source/readme.md
deleted file mode 100644
index 71cbde5a9..000000000
--- a/source/readme.md
+++ /dev/null
@@ -1,9 +0,0 @@
- utPLSQL - Version X.X.X.X
- Copyright 2016 - 2017 utPLSQL Project
------------------------------------------------------
-
-Sources for utPLSQL to be installed on the database.
-
-To find out on different options to do the install read through detailed documentation for particular version look into documentation at https://utplsql.github.io/utPLSQL/
-
-The install guide for latest development version can be found here: https://utplsql.github.io/utPLSQL/develop/userguide/install.html