-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathsearch_index.json
More file actions
1 lines (1 loc) · 120 KB
/
Copy pathsearch_index.json
File metadata and controls
1 lines (1 loc) · 120 KB
1
{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"],"fields":{"title":{"boost":1000.0},"text":{"boost":1.0},"tags":{"boost":1000000.0}}},"docs":[{"location":"index.html","title":"Home","text":"utPLSQL - Testing Framework for PL/SQL <p>The ultimate unit testing framework for Oracle PL/SQL.</p> <p>Free, open-source, and inspired by the xUnit family (JUnit, NUnit, etc.).</p> <p>Write and run tests directly in PL/SQL, integrate with your CI/CD pipeline, and verify your code stability with every build.</p> <p>Latest News</p> <p>Stay up to date with releases and project updates on the Announcements page.</p>"},{"location":"index.html#get-started","title":"Get Started","text":"<ul> <li>Documentation \u2014 installation, configuration, writing tests</li> <li>Downloads \u2014 latest releases and changelogs</li> </ul>"},{"location":"index.html#frameworks-and-tools","title":"Frameworks and tools","text":"Project Description What's new? Something broken? utPLSQL Core framework \u2014 install and run unit tests in Oracle releases report it here utPLSQL-cli Command-line client for running tests from CI/CD pipelines releases report it here utPLSQL-maven-plugin Maven plugin for running utPLSQL tests releases report it here utPLSQL-SQLDeveloper SQL Developer extension releases report it here utPLSQL-PLSQL-Developer PL/SQL Developer extension releases report it here utPLSQL-java-api Java API for connecting to utPLSQL releases report it here utPLSQL-dotnet-api .NET API for connecting to utPLSQL report it here utPLSQL-demo-project Demonstration project showcasing running utPLSQL tests in Github Actions with dockerized Oracle DB report it here"},{"location":"index.html#community","title":"Community","text":"<p>Have a question or idea? Start a discussion on GitHub \u2014 it's the best place to ask for help, share feedback, or propose new features.</p>"},{"location":"about.html","title":"About","text":"<p>utPLSQL is a set of free-to use, open-source frameworks and tools for unit testing Oracle Database PL/SQL code, inspired by the JUnit and RSpec family of frameworks.</p> <p>It lets you write and run automated tests for anything that can be executed and observed from PL/SQL - packages, functions, procedures, triggers, views, and beyond.</p> <p>Tests are defined with simple annotations and can be structured into hierarchies of suites, making tests easier to group into logical collections. A rich variety of matchers enables data comparison, including complex types such as objects, collections and cursors, while automatic, configurable transaction control keeps every test isolated and repeatable.</p> <p>Built-in code coverage reporting and muti-format test result reporting, make utPLSQL easy to run within existing CI/CD pipelines, with native integrations for SonarQube, Jenkins and TeamCity, Azure, GitHub Actions etc.</p>"},{"location":"about.html#frameworks-and-tools","title":"Frameworks and tools","text":"Project Description What's new? Something broken? utPLSQL Core framework \u2014 install and run unit tests in Oracle releases report it here utPLSQL-cli Command-line client for running tests from CI/CD pipelines releases report it here utPLSQL-maven-plugin Maven plugin for running utPLSQL tests releases report it here utPLSQL-SQLDeveloper SQL Developer extension releases report it here utPLSQL-PLSQL-Developer PL/SQL Developer extension releases report it here utPLSQL-java-api Java API for connecting to utPLSQL releases report it here utPLSQL-dotnet-api .NET API for connecting to utPLSQL report it here utPLSQL-demo-project Demonstration project showcasing running utPLSQL tests in Github Actions with dockerized Oracle DB report it here"},{"location":"about.html#community","title":"Community","text":"<p>utPLSQL is created by an open community of passionates, and it embraces a Code of Conduct.</p> <ul> <li>Search or start a topic at the Organization or the utPLSQL framework GitHub Discussions to ask questions, find support and share ideas</li> <li>Search Stack Overflow using the <code>utplsql</code> tag</li> <li>Open a new issue on GitHub for bugs or feature requests</li> <li>Read the contributing guide if you'd like to get involved</li> </ul> <p>Follow the project on Twitter, Bluesky and LinkedIn for news and announcements.</p>"},{"location":"about.html#license","title":"License","text":"<p>utPLSQL projects are licensed under the Apache 2.0 license.</p>"},{"location":"about.html#history","title":"History","text":""},{"location":"about.html#framework-history","title":"Framework history","text":"<p>While the framework exists since 1999, the current version is a consequence of a complete rewrite done in 2016 by passionate developers, using the object-oriented capabilities of the Oracle database to make it more aligned with other testing frameworks (e.g. JUnit for Java, RSpec for Ruby). </p> <p>This had significant impact on the test code syntax and how the framework is used.</p>"},{"location":"about.html#major-contributors","title":"Major Contributors","text":"Name GitHub Comments Jacek Gebal jgebal Project lead, admin, core PL/SQL framework, pipelines, expectations, reporters, annotations, cache Pavel Kaplya Pazus Core PL/SQL framework, design, annotations Lukasz Wasylow lwasylow Core PL/SQL framework, demo project Samuel Nitsche pesse utPLSQL-java-api, utPLSQL-cli Philipp Salvisberg utPLSQL-SQLDeveloper-extension Simon Martinelli utPLSQL-PLSQL-Developer plugin, utPLSQL-cli Vinicius Avellar viniciusam utPLSQL-java-api, maven-plugin, utPLSQL-cli Robert Love rlove David Pyke Shoelace <p>Many thanks to all contributors across utPLSQL projects.</p>"},{"location":"about.html#prior-versions-creators","title":"Prior versions creators","text":"Name Comments Steven Feuerstein Original Author Chris Rimmer Patrick Barel Paul Walker"},{"location":"about.html#supporters","title":"Supporters","text":"<p>The utPLSQL project is community-driven and is not commercially motivated. Nonetheless, donations and other contributions are always welcome, and are detailed below.</p>"},{"location":"about.html#active-supporters","title":"Active supporters","text":"<p>There are currently no active supporters. If your company would like to support the project, please reach out on GitHub Discussions.</p>"},{"location":"about.html#past-supporters","title":"Past supporters","text":"Supporter Details In 2019, Redgate supported utPLSQL by sponsoring stickers and t-shirts"},{"location":"contributing.html","title":"Contributing","text":"<p>The utPLSQL project team welcomes contributions from the community.</p> <ul> <li>Contribute code \u2014 please read the contributing guide before submitting a pull request.</li> <li>Ask questions and share ideas \u2014 use GitHub Discussions for support, questions, and feature proposals.</li> <li>Report bugs and issues \u2014 open an issue in the relevant GitHub repository.</li> </ul> <p>The source code for all utPLSQL projects is hosted on the utPLSQL GitHub organisation.</p>"},{"location":"documentation.html","title":"Documentation","text":"<ul> <li>utPLSQL framework</li> <li>utPLSQL-cli</li> <li>utPLSQL-maven plugin</li> <li>SQLDeveloper extension</li> <li>PL/SQL Developer plugin</li> </ul>"},{"location":"downloads.html","title":"Downloads","text":"<ul> <li> <p>utPLSQL framework - the testing framework </p> </li> <li> <p>utPLSQL-cli - command line utility to run utPLSQL tests from any command line (Win/Linux/Mac)</p> </li> <li> <p>utPLSQL Maven plugin to run utPLSQL tests as part of Java Maven project build</p> </li> <li> <p>utPSLQL - SQLDeveloper extension to create and run utPLSQL tests from SQLDeveloper</p> </li> <li> <p>utPSLQL - PL/SQL Developer extension to create and run utPLSQL tests from PLSQL Developer</p> </li> </ul>"},{"location":"resources.html","title":"Resources","text":"<p>Do you know about videos, articles, blogs or code examples that are missing here? Please let us know! </p>"},{"location":"resources.html#framework","title":"Framework","text":"<ul> <li> Latest documentation</li> </ul>"},{"location":"resources.html#overview","title":"Overview","text":"<ul> <li> UKOUG Testing PLSQL APIs with utPLSQL v3 Webinar (by Jacek Gebal) Comprehensive webinar about utPLSQL by Jacek Gebal. The definitive guide to why and how to test PL/SQL with utPLSQL</li> <li> utPLSQL 3.0 - How to have your cake and eat it (by Mike Smithers) Complete introduction to utPLSQL 3.0, covering installation, comprehensive example application, transaction challenges and even code coverage</li> <li> Strongholds of Confidence: Self-Testing your Database (by Samuel Nitsche) Plea to start creating meaningful, automated self-tests and why. Finishes with a concrete utPLSQL example</li> <li> Test Driven Development in PLSQL with utPLSQL v3 \u2013 intro (by Jacek Gebal) Addresses some major struggles of developers who start with unit-testing and also gives a brief intro into Test-Driven-Development</li> <li> Testing PL/SQL in your Ci/Cd pipeline with utPLSQL (by Blaine Carter) Blaine demonstrates running utPLSQL unit tests in Oracle Developer Cloud and publishing test results. </li> <li> Extending Oracle Database DevOps with Automated PL/SQL Unit Testing (by Shay Shmeltzer) Overview of running utPLSQL unit tests within Oracle Developer Cloud</li> <li> DevOps Around Autonomous Data Warehouse (Oracle) A short overview of an architecture proposed for Database Software Delivery LifeCycle with automated testing and static code analysis </li> <li> Oracle Developers Office Hours - Real World Testing of PL/SQL Code (hosted by Steven Feuerstein) Panel webinar with: Jasmin Fluri, Deepthi Bandari, Swathi Ambati & Maik Becker, Patrick Barel & Samuel Nitsche</li> <li> Oracle Groundbreakers - Testing with utPLSQL (by Philipp Salvisberg) Presentation on 28th October 2020 at Oracle Groundbreakers APAC Virtual Tour</li> <li> Oracle Developers Office Hours - Testing with utPLSQL (hosted by Connor McDonald) Live coding and testing session with Samuel Nitsche and Jacek Gebal </li> <li> Testing in the Imperial Database (by Samuel Nitsche) Talk from SAST Q4 Digital Testing conference </li> <li> Testing With utPLSQL \u2013 Made Easy With SQL Developer (by Philipp Salvisberg)</li> <li> Database Development Champions - Programming With utPLSQL \u2013 This Is the Way (by Philipp Salvisberg)</li> </ul>"},{"location":"resources.html#structuring-tests","title":"Structuring Tests","text":"<ul> <li> utPLSQL\u2019s Suite Hierarchy in action (by Samuel Nitsche) Example of the <code>%suitepath</code> annotation and utPLSQL hierarchies</li> <li> Narrate Star Wars Movies with utPLSQL annotations (by Samuel Nitsche) Example how to use the different annotations that allow to structure tests (<code>%before</code>, <code>%after</code>, <code>%context</code>)</li> <li> Testing the Deathstar security with utPLSQL contexts (by Samuel Nitsche) Example how to use the <code>%context</code> annotation</li> </ul>"},{"location":"resources.html#cursor-comparison","title":"Cursor Comparison","text":"<ul> <li> What is the equivalent of utassert eqtable / eqquery in utPLSQL v3 (by Jacek Gebal) Comparison between utPLSQL v2's <code>utassert.eqtable</code> and v3's <code>ut.expect(sys_refcursor).to_equal(sys_refcursor)</code> approach.</li> <li> Unit-Tests for Primary/Secondary Lookup with Cursor Comparison (by Samuel Nitsche) Example how to use cursor comparison with <code>select from dual</code> expectations</li> <li> utPLSQL Cursor Comparison with user-defined Types (by Samuel Nitsche) Example how to use cursor comparison with expectations created via user-defined types </li> <li> Test updatable views with utPLSQL Cursors (by Samuel Nitsche) Example how to easily test the updatability of a view with cursor comparison</li> </ul>"},{"location":"resources.html#code-talks","title":"Code Talks","text":"<ul> <li> 2017 CodeTalk Series: Unit Testing PL SQL Code in the Real World</li> <li> 2018 CodeTalk Series: Practical Advice for Taking Your PL SQL Testing to the Next Level</li> </ul>"},{"location":"resources.html#tools","title":"Tools","text":""},{"location":"resources.html#utplsql-sqldeveloper-extension","title":"utPLSQL - SQLDeveloper extension","text":"<ul> <li> Running utPLSQL Tests in SQL Developer (by Philipp Salvisberg) Detailed explanation how to install and use the utPLSQL-Plugin for SQLDeveloper</li> <li> utPLSQL for SQL Developer 1.2 \u2013 What\u2019s New? (by Philipp Salvisberg)</li> <li> Documentation</li> <li> Downloads</li> </ul>"},{"location":"resources.html#utplsql-command-line-interface","title":"utPLSQL Command-line interface","text":"<ul> <li> Documentation </li> <li> Downloads </li> </ul>"},{"location":"resources.html#utplsql-plsql-developer-plugin","title":"utPLSQL PLSQL-Developer plugin","text":"<ul> <li> Documentation</li> <li>Download</li> </ul>"},{"location":"resources.html#maven-plugin","title":"Maven-Plugin","text":"<ul> <li> Documentation</li> </ul>"},{"location":"utPLSQL-PLSQL-Developer.html","title":"utPLSQL Plugin for PLSQL Developer","text":"<p>The utPLSQL Plugin integrates utPLSQL with Allround Automations PL/SQL Developer.</p>"},{"location":"utPLSQL-PLSQL-Developer.html#running-tests","title":"Running Tests","text":"<p>The plugin adds three buttons to the tools ribbon to 1) execute all tests of the current user, 2) run code coverage or 3) run tests for a specific path. If you choose 3) the run window will open and you can enter the path manually.</p> <p></p> <p>In the object browser on Packages, Package Bodys, Procedures or Users there is a context menu entry to run the tests or code coverage of either the package, the procedure or the user. You can also run tests from an program window. </p> <p></p>"},{"location":"utPLSQL-PLSQL-Developer.html#viewing-results","title":"Viewing Results","text":"<p>The results are opened in a new window. Each test run will open a separate window. </p>"},{"location":"utPLSQL-PLSQL-Developer.html#navigating-to-the-package-body","title":"Navigating to the package body","text":"<p>Double-click on a test result entry will open the package body. </p>"},{"location":"utPLSQL-PLSQL-Developer.html#running-tests_1","title":"Running tests","text":"<p>There are two buttons to run the tests again either with or without coverage.</p>"},{"location":"utPLSQL-PLSQL-Developer.html#running-single-tests","title":"Running single tests","text":"<p>A right-click opens the context menu, and you can run the test function.</p>"},{"location":"utPLSQL-PLSQL-Developer.html#filtering-and-sorting-results","title":"Filtering and Sorting Results","text":"<p>You can filter the results by clicking on checkboxes behind the status field. A click on the header cell sorts the results first ascending and with a second click descending. </p> <p></p>"},{"location":"utPLSQL-PLSQL-Developer.html#code-coverage","title":"Code Coverage","text":"<p>If you select Run Code Coverage from the menu or the context menu a dialog is displayed. In this dialog you can configure the schemas to check for coverage and include or exclude specific objects.</p> <p></p>"},{"location":"utPLSQL-PLSQL-Developer.html#report","title":"Report","text":"<p>After running the tests the HTML code coverage report will be opened in the default browser.</p> <p></p>"},{"location":"utPLSQL-PLSQL-Developer.html#releases","title":"Releases","text":"<p>Binary releases for 64bit and 32bit are published in the releases section.</p>"},{"location":"utPLSQL-PLSQL-Developer.html#installation","title":"Installation","text":"<p>Copy the DLL to the PlugIns directory of your PL/SQL Developer installation. - 64bit: PlsqlDeveloperUtPlsqlPlugin.dll - 32bit: PlsqlDeveloperUtPlsqlPlugin_x86.dll</p>"},{"location":"utPLSQL-PLSQL-Developer.html#issues","title":"Issues","text":"<p>Please file your bug reports, enhancement requests, questions and other support requests within Github's issue tracker.</p> <ul> <li>Questions</li> <li>Open enhancements</li> <li>Open bugs</li> <li>Submit new issue</li> </ul>"},{"location":"utPLSQL-PLSQL-Developer.html#how-to-contribute","title":"How to Contribute","text":"<ol> <li>Describe your idea by submitting an issue</li> <li>Fork the utPLSQL-PLSQL-Developer respository</li> <li>Create a branch, commit and publish your changes and enhancements</li> <li>Create a pull request</li> </ol>"},{"location":"utPLSQL-PLSQL-Developer.html#how-to-build","title":"How to Build","text":"<ol> <li>Open the PlsqlDeveloperUtPlsqlPlugin.sln solution in Visual Studio</li> <li>Make sure to choose x64 as Platform target</li> <li>Build the solution</li> </ol>"},{"location":"utPLSQL-PLSQL-Developer.html#license","title":"License","text":"<p>utPLSQL for PL/SQL Developer is licensed under the Apache License, Version 2.0. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.</p>"},{"location":"utPLSQL-SQLDeveloper.html","title":"utPLSQL for SQL Developer","text":""},{"location":"utPLSQL-SQLDeveloper.html#introduction","title":"Introduction","text":"<p>utPLSQL for SQL Developer extends Oracle's SQL Developer to</p> <ul> <li>run utPLSQL unit tests</li> <li>debug utPLSQL unit tests</li> <li>run utPLSQL code coverage reports</li> <li>generate utPLSQL unit tests (skeletons)</li> <li>provide utPLSQL annotations and expectations as snippets</li> </ul>"},{"location":"utPLSQL-SQLDeveloper.html#run-utplsql-test","title":"Run utPLSQL test","text":"<p>In the Connections window, select a connection or one or more packages or package procedures to run utPLSQL tests. Or you can run utPLSQL tests directly from the PL/SQL editor. The test procedures are determined according to the cursor position in the PL/SQL editor.</p> <p></p>"},{"location":"utPLSQL-SQLDeveloper.html#debug-utplsql-test","title":"Debug utPLSQL test","text":"<p>Select the tests to debug, the same way you would if you were just running them, but select <code>Debug utPLSQL test...</code> in the context menu.</p> <p>And then the PL/SQL Debugger is called for the generated, anonymous PL/SQL block.</p> <p></p> <p>The initialization timeout for the realtime reporter is increased to 1 hour. The overall timeout is left to the default value of 4 hours. So you have enough time to step through the PL/SQL code and analyse it. Press the <code>Stop</code> button at any time to cancel the test run.</p> <p></p>"},{"location":"utPLSQL-SQLDeveloper.html#code-coverage","title":"Code coverage...","text":"<p>In the Connections window, select a connection or one or more packages for a code coverage report.</p> <p>In the dialog you can set some parameters. If you run code coverage for a few chosen packages or from the PL/SQL editor the objects to be included are determined according the object dependencies in the Oracle data dictionary.</p> <p></p> <p>Press <code>Run</code> to produce the code coverage process in the background. You may minimize or close the dialog. To abort the process, press <code>Cancel</code>.</p> <p>The HTML report is shown in your default browser.</p> <p></p>"},{"location":"utPLSQL-SQLDeveloper.html#generate-utplsql-test","title":"Generate utPLSQL test","text":""},{"location":"utPLSQL-SQLDeveloper.html#based-on-existing-code","title":"Based on existing code","text":"<p>Select a package, type, function or procedure to build a utPLSQL test package skeleton. The generated package compiles and executes, but still needs some rework.</p> <p></p>"},{"location":"utPLSQL-SQLDeveloper.html#from-scratch","title":"From scratch","text":"<ol> <li>Press the button <code>Create code templates</code> in the preferences</li> <li>Type <code>ut_</code> in the Worksheet or a PL/SQL editor and press <code>Ctrl-Space</code> to get the list of a utPLSQL code templates</li> <li>Press <code>Return</code> to paste a code template at the current cursor position</li> </ol>"},{"location":"utPLSQL-SQLDeveloper.html#snippets","title":"Snippets","text":"<p>Import utPLSQL snippets for annotations and expectations via the the <code>Import Snippets</code> button of the utPLSQL preferences dialog.</p> <p>Insert the snippets by drag & drop into your code.</p>"},{"location":"utPLSQL-SQLDeveloper.html#annotations","title":"Annotations","text":"<p>Annotations are used in the package specification for various test configurations.</p> <p></p>"},{"location":"utPLSQL-SQLDeveloper.html#expectations","title":"Expectations","text":"<p>Expectations are used in the package body to compare actual with expected results.</p> <p></p>"},{"location":"utPLSQL-SQLDeveloper.html#preferences","title":"Preferences","text":"<p>Set your preferences to change the behaviour of utPLSQL within SQL Developer.</p> <p></p>"},{"location":"utPLSQL-SQLDeveloper.html#oddgen-integration","title":"oddgen integration","text":"<p>utPLSQL for SQL Developer implements the OddgenGenerator2 interface to</p> <ul> <li>run existing utPLSQL test suitepaths and test suites</li> <li>bulk generate new utPLSQL unit tests into dedicated files</li> </ul> <p>The use of oddgen for SQL Developer is optional.</p>"},{"location":"utPLSQL-SQLDeveloper.html#run-utplsql-test_1","title":"Run utPLSQL test","text":"<p>utPLSQL can run tests based on suitepaths and suites. The next screenshot shows the generated run command for two selected suitepaths.</p> <p></p>"},{"location":"utPLSQL-SQLDeveloper.html#generate-utplsql-test_1","title":"Generate utPLSQL test","text":"<p>Use oddgen to generate utPLSQL test package skeletons. When generating to files, a file for each package specification and package body is created.</p> <p></p>"},{"location":"utPLSQL-SQLDeveloper.html#releases","title":"Releases","text":"<p>Binary releases are published here.</p>"},{"location":"utPLSQL-SQLDeveloper.html#installation","title":"Installation","text":""},{"location":"utPLSQL-SQLDeveloper.html#from-file","title":"From file","text":"<ol> <li> <p>Start SQL Developer</p> </li> <li> <p>Select <code>Check for Updates\u2026</code> in the help menu.</p> </li> <li> <p>Use the <code>Install From Local File</code> option to install the previously downloaded <code>utplsql_for_SQLDev_*.zip</code> file.</p> </li> </ol>"},{"location":"utPLSQL-SQLDeveloper.html#via-update-center","title":"Via Update Center","text":"<ol> <li> <p>Start SQL Developer</p> </li> <li> <p>Select <code>Check for Updates\u2026</code> in the help menu.</p> </li> <li> <p>Press <code>Add\u2026</code> to register the <code>salvis.com</code> update site <code>http://update.salvis.com/</code>.</p> </li> <li> <p>Use the <code>Search Update Center</code> option and select the <code>salvis.com</code> update center to install the lastest version of <code>utPLSQL for SQL Developer</code>.</p> </li> </ol>"},{"location":"utPLSQL-SQLDeveloper.html#issues","title":"Issues","text":"<p>Please file your bug reports, enhancement requests, questions and other support requests within Github's issue tracker.</p> <ul> <li>Questions</li> <li>Open enhancements</li> <li>Open bugs</li> <li>Submit new issue</li> </ul>"},{"location":"utPLSQL-SQLDeveloper.html#how-to-contribute","title":"How to Contribute","text":"<ol> <li>Describe your idea by submitting an issue</li> <li>Fork the utPLSQL-SQLDeveloper repository</li> <li>Create a branch, commit and publish your changes and enhancements</li> <li>Create a pull request</li> </ol>"},{"location":"utPLSQL-SQLDeveloper.html#how-to-build","title":"How to Build","text":"<ol> <li>Download and install SQL Developer 24.3.1</li> <li>Download and install a JDK 17 or newer</li> <li>Download and install Apache Maven 3.9.16</li> <li>Download and install a git command line client</li> <li>Clone the utPLSQL-SQLDeveloper repository</li> <li> <p>Open a terminal window in the utPLSQL-SQLDeveloper root folder and type</p> <pre><code>cd sqldev\n</code></pre> </li> <li> <p>Run maven build by the following command</p> <pre><code>mvn -Dsqldev.basedir=/Applications/SQLDeveloper24.3.1.app/Contents/Resources/sqldeveloper -DskipTests=true clean package\n</code></pre> <p>Amend the parameter sqldev.basedir to match the path of your SQL Developer installation. This folder is used to reference Oracle jar files which are not available in public Maven repositories 8. The resulting file <code>utplsql_for_SQLDev_x.x.x-SNAPSHOT.zip</code> in the <code>target</code> directory can be installed within SQL Developer</p> </li> </ol>"},{"location":"utPLSQL-SQLDeveloper.html#license","title":"License","text":"<p>utPLSQL for SQL Developer is licensed under the Apache License, Version 2.0. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.</p>"},{"location":"utPLSQL-cli.html","title":"utPLSQL-cli","text":"<p>Java command-line client for utPLSQL v3.</p> <p>Provides an easy way of invoking utPLSQL from command-line. Main features:</p> <ul> <li>Ability to run tests with multiple reporters simultaneously.</li> <li>Realtime reporting during test-run</li> <li>Ability to save output from every individual reporter to a separate output file.</li> <li>Allows execution of selected suites, subset of suite.</li> <li>Maps project and test files to database objects for reporting purposes.</li> </ul>"},{"location":"utPLSQL-cli.html#downloading","title":"Downloading","text":"<p>Published releases are available for download on the utPLSQL-cli GitHub Releases Page.</p> <p>Development (<code>develop</code> branch) builds are not published as downloadable artifacts. To use the latest development version, build it from source: <pre><code>git clone https://github.com/utPLSQL/utPLSQL-cli.git\ncd utPLSQL-cli\nmvn package appassembler:assemble\n</code></pre></p>"},{"location":"utPLSQL-cli.html#requirements","title":"Requirements","text":"<ul> <li>Java SE Runtime Environment 17 or newer</li> <li>When using reporters for Sonar, client needs to be invoked from project's root directory.</li> </ul>"},{"location":"utPLSQL-cli.html#compatibility","title":"Compatibility","text":"<p>The latest CLI is compatible with database frameworks of the same minor version. For example CLI-3.2.0 is compatible with database framework 3.2. but not necessarily with framework 3.1. or 3.3.*</p>"},{"location":"utPLSQL-cli.html#localization-and-nls-settings","title":"Localization and NLS settings","text":"<p>utPLSQL-cli will use the environment variables \"LC_ALL\" or \"LANG\" to change the locale and therefore the client NLS settings. If neither environment variable is available, it will use the JVM default locale.</p> <p>Example: to change the NLS-settings to English American, you can do the following: <pre><code>export LC_ALL=en_US.utf-8\n</code></pre></p> <p>The charset-part of LC_ALL is ignored.</p> <p>In addition, utPLSQL-cli will use an existing \"NLS_LANG\" environment variable to create corresponding <code>ALTER SESSION</code>-statements during initialization of the connection.</p> <p>The variable is parsed according to the Oracle globalization documentation</p> <p>Example: \"NLS_LANG\" of <code>AMERICAN_AMERICA.UTF8</code> will lead to the following statements: <pre><code>ALTER SESSION SET NLS_LANGUAGE='AMERICAN';\nALTER SESSION SET NLS_TERRITORY='AMERICA';\n</code></pre></p>"},{"location":"utPLSQL-cli.html#charset","title":"Charset","text":"<p>Java will use the default charset of your system for any string output. You can change this by passing the <code>-Dfile.encoding</code> property to the JVM when running a java-application. To avoid changing the utPLSQL-cli shell- or batchscript, you can define <code>-Dfile.encoding</code> in the environment variable <code>JAVA_TOOL_OPTIONS</code>. This environment variable will be picked up and interpreted by the JVM:</p> <pre><code>export JAVA_TOOL_OPTIONS='-Dfile.encoding=utf8'\nutplsql run user/pw@connecstring\n\n> Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=utf8\n</code></pre> <p>Make sure that the defined charset matches with the codepage your console is using.</p>"},{"location":"utPLSQL-cli.html#usage","title":"Usage","text":"<p>Currently, utPLSQL-cli supports the following sub-commands: - run - info - reporters - help</p> <p>To get more info about a command, use <pre><code>utplsql <sub-command> -h\n</code></pre> Example: <pre><code>utplsql run -h\n</code></pre></p>"},{"location":"utPLSQL-cli.html#connectionurl","title":"ConnectionURL","text":"<p>This is used in all commands as first parameter (though it's optional for <code>info</code>).</p> <p>Accepted formats:</p> <ul> <li><code><user>/<password>@//<host>[:<port>]/<service></code></li> <li><code><user>/<password>@<host>:<port>:<SID></code> </li> <li><code><user>/<password>@<TNSName></code></li> </ul> <p>To connect using TNS, you need to have the ORACLE_HOME environment variable set. The file tnsnames.ora must exist in path %ORACLE_HOME%/network/admin The file tnsnames.ora must contain valid TNS entries. </p> <p>In case you use a username containing <code>/</code> or a password containing <code>@</code> you should encapsulate it with double quotes <code>\"</code>: <pre><code>utplsql run \"my/Username\"/\"myP@ssword\"@connectstring\n</code></pre></p>"},{"location":"utPLSQL-cli.html#run","title":"run","text":"<p><code>utplsql run <ConnectionURL> [<options>]</code></p>"},{"location":"utPLSQL-cli.html#options","title":"Options","text":"<pre><code>-p=suite_path(s) - A suite path or a comma separated list of suite paths for unit test to be executed. \n(--path) The path(s) can be in one of the following formats:\n schema[.package[.procedure]]\n schema:suite[.suite[.suite][...]][.procedure]\n Both formats can be mixed in the list.\n If only schema is provided, then all suites owner by that schema are executed.\n If -p is omitted, the current schema is used.\n\n--tags=tags - A comma separated list of tags to include or exclude in the run. \n The excluded tags must be preceeded by a `-` (minus) sign and the entire expression must be surrounded by escaped doubleqotes in command line.\n Format: --tags=tag1[,tag2,...,tagN]\n or\n Format: --tags=\\\"-tag1\\\"[,\\\"-tag2\\\",...,tagN]\n-f=format - A reporter to be used for reporting.\n(--format) If no -f option is provided, the default ut_documentation_reporter is used.\n See reporters command for possible values\n -o=output - Defines file name to save the output from the specified reporter.\n If defined, the output is not displayed on screen by default. This can be changed with the -s parameter.\n If not defined, then output will be displayed on screen, even if the parameter -s is not specified.\n If more than one -o parameter is specified for one -f parameter, the last one is taken into consideration.\n -s - Forces putting output to to screen for a given -f parameter.\n\n-source_path=source - path to project source files, use the following options to enable custom type mappings:\n -owner=\"app\"\n -regex_expression=\"pattern\"\n -type_mapping=\"matched_string=TYPE[/matched_string=TYPE]*\"\n -owner_subexpression=subexpression_number\n -type_subexpression=subexpression_number\n -name_subexpression=subexpression_number\n\n-test_path=test - path to project test files, use the following options to enable custom type mappings:\n -owner=\"app\"\n -regex_expression=\"pattern\"\n -type_mapping=\"matched_string=TYPE[/matched_string=TYPE]*\"\n -owner_subexpression=subexpression_number\n -type_subexpression=subexpression_number\n -name_subexpression=subexpression_number\n\n-c - If specified, enables printing of test results in colors as defined by ANSICONSOLE standards. \n(--color) Works only on reporeters that support colors (ut_documentation_reporter).\n\n--failure-exit-code=code - Override the exit code on failure, defaults to 1. You can set it to 0 to always exit with a success status.\n\n-scc - If specified, skips the compatibility-check with the version of the database framework.\n(--skip- If you skip compatibility-check, CLI will expect the most actual framework version\n compatibility-check) \n\n-include=pckg_list - Comma-separated object list to include in the coverage report.\n Format: [schema.]package[,[schema.]package ...].\n See coverage reporting options in framework documentation.\n\n-exclude=pckg_list - Comma-separated object list to exclude from the coverage report.\n Format: [schema.]package[,[schema.]package ...].\n See coverage reporting options in framework documentation.\n\n-q - Does not output the informational messages normally printed to console.\n(--quiet) Default: false\n\n-d - Outputs a load of debug information to console\n(--debug) Default: false\n\n-t=timeInMinutes - Sets the timeout in minutes after which the cli will abort. \n(--timeout) Default 60\n\n-D - Enables DBMS_OUTPUT in the TestRunner-Session\n(--dbms_output) Default: false\n\n-r - Enables random order of test executions\n(--random-test-order) Default: false\n\n-seed - Sets the seed to use for random test execution order. If set, it sets -random to true\n(--random-test-order-seed)\n\n--coverage-schemes - A comma separated list of schemas on which coverage should be gathered\n Format: --coverage-schemes=schema1[,schema2[,schema3]]\n\n--ora-stuck-timeout - Sets a timeout around Reporter creation and retries when not ready after a while. 0 = no timeout.\n</code></pre> <p>Parameters -f, -o, -s are correlated. That is parameters -o and -s are controlling outputs for reporter specified by the preceding -f parameter.</p> <p>Sonar reporter will only provide valid reports, when source_path and/or test_path are provided, and ut_run is executed from your project's root path.</p>"},{"location":"utPLSQL-cli.html#examples","title":"Examples","text":"<pre><code>> utplsql run hr/hr@xe -p=hr_test -f=ut_documentation_reporter -o=run.log -s -f=ut_coverage_html_reporter -o=coverage.html -source_path=source\n</code></pre> <p>Invokes all Unit tests from schema/package \"hr_test\" with two reporters:</p> <ul> <li>ut_documentation_reporter - will output to screen and save output to file \"run.log\"</li> <li>ut_coverage_html_reporter - will report only on database objects that are mapping to file structure from \"source\" folder and save output to file \"coverage.html\"</li> </ul> <pre><code>> utplsql run hr/hr@xe\n</code></pre> <p>Invokes all unit test suites from schema \"hr\". Results are displayed to screen using default ut_documentation_reporter.</p>"},{"location":"utPLSQL-cli.html#info","title":"info","text":"<p><code>utplsql info [<ConnectionURL>]</code></p>"},{"location":"utPLSQL-cli.html#examples_1","title":"Examples","text":"<p><pre><code>> utplsql info\n\ncli 3.1.1-SNAPSHOT.local\nutPLSQL-java-api 3.1.1-SNAPSHOT.123\n</code></pre> <pre><code>> utplsql info app/app@localhost:1521/ORCLPDB1\n\ncli 3.1.1-SNAPSHOT.local\nutPLSQL-java-api 3.1.1-SNAPSHOT.123\nutPLSQL 3.1.2.1913\n</code></pre></p>"},{"location":"utPLSQL-cli.html#reporters","title":"reporters","text":"<p><code>utplsql reporters <ConnectionURL></code></p>"},{"location":"utPLSQL-cli.html#examples_2","title":"Examples","text":"<pre><code>> utplsql reporters app/app@localhost:1521/ORCLPDB1\n\nUT_COVERAGE_COBERTURA_REPORTER:\n Generates a Cobertura coverage report providing information on code coverage with line numbers.\n Designed for Jenkins and TFS to report coverage.\n Cobertura Document Type Definition can be found: http://cobertura.sourceforge.net/xml/coverage-04.dtd.\n Sample file: https://github.com/leobalter/testing-examples/blob/master/solutions/3/report/cobertura-coverage.xml.\n\nUT_COVERAGE_HTML_REPORTER:\n Generates a HTML coverage report with summary and line by line information on code coverage.\n Based on open-source simplecov-html coverage reporter for Ruby.\n Includes source code in the report.\n Will copy all necessary assets to a folder named after the Output-File\n\nUT_COVERAGE_SONAR_REPORTER:\n Generates a JSON coverage report providing information on code coverage with line numbers.\n Designed for [SonarQube](https://about.sonarqube.com/) to report coverage.\n JSON format returned conforms with the Sonar specification: https://docs.sonarqube.org/display/SONAR/Generic+Test+Data\n\nUT_DEBUG_REPORTER:\n No description available\n\nUT_DOCUMENTATION_REPORTER:\n A textual pretty-print of unit test results (usually use for console output)\n Provides additional properties lvl and failed\n\nUT_JUNIT_REPORTER:\n Provides outcomes in a format conforming with JUnit 4 and above as defined in: https://gist.github.com/kuzuha/232902acab1344d6b578\n\nUT_REALTIME_REPORTER:\n Provides test results in a XML format, for clients such as SQL Developer interested in showing progressing details.\n\nUT_SONAR_TEST_REPORTER:\n Generates a JSON report providing detailed information on test execution.\n Designed for [SonarQube](https://about.sonarqube.com/) to report test execution.\n JSON format returned conforms with the Sonar specification: https://docs.sonarqube.org/display/SONAR/Generic+Test+Data\n\nUT_TEAMCITY_REPORTER:\n Provides the TeamCity (a CI server by jetbrains) reporting-format that allows tracking of progress of a CI step/task as it executes.\n https://confluence.jetbrains.com/display/TCD9/Build+Script+Interaction+with+TeamCity\n\nUT_TFS_JUNIT_REPORTER:\n Provides outcomes in a format conforming with JUnit version for TFS / VSTS.\n As defined by specs :https://docs.microsoft.com/en-us/vsts/build-release/tasks/test/publish-test-results?view=vsts\n Version is based on windy road junit https://github.com/windyroad/JUnit-Schema/blob/master/JUnit.xsd.\n\nUT_XUNIT_REPORTER:\n Depracated reporter. Please use Junit.\n Provides outcomes in a format conforming with JUnit 4 and above as defined in: https://gist.github.com/kuzuha/232902acab1344d6b578\n</code></pre>"},{"location":"utPLSQL-cli.html#using-utplsql-cli-as-sysdba","title":"Using utPLSQL-cli as sysdba","text":"<p>Since 3.1.6 it is possible to run utPLSQL-cli as sysdba by running</p> <pre><code>utplsql run \"sys as sysdba\"/pw@connectstring\n</code></pre> <p>It is, however, not recommended to run utPLSQL with sysdba privileges.</p>"},{"location":"utPLSQL-cli.html#enabling-color-outputs-on-windows","title":"Enabling Color Outputs on Windows","text":"<p>To enable color outputs on Windows cmd you need to install an open-source utility called ANSICON.</p>"},{"location":"utPLSQL-cli.html#custom-reporters","title":"Custom Reporters","text":"<p>Since v3.1.0 you can call custom reporters (PL/SQL) via cli, too. Just call the name of the custom reporter as you would do for the core reporters.</p> <pre><code>utplsql run hr/hr@xe -p=hr_test -f=my_custom_reporter -o=run.log -s\n</code></pre>"},{"location":"utPLSQL-maven-plugin.html","title":"utPLSQL-maven plugin","text":"<p>A maven plugin for running Unit Tests with utPLSQL v3+.</p>"},{"location":"utPLSQL-maven-plugin.html#compatibility","title":"Compatibility","text":"<p>This plugin is compatible with utPLSQL 3.1.0+.</p>"},{"location":"utPLSQL-maven-plugin.html#prerequisites","title":"Prerequisites","text":"<ul> <li>Java SE Runtime Environment 17</li> <li>Maven Version 3.9.9+</li> </ul>"},{"location":"utPLSQL-maven-plugin.html#usage","title":"Usage","text":""},{"location":"utPLSQL-maven-plugin.html#skipping-tests","title":"Skipping Tests","text":"<p>To skip running the tests for a particular project, set the skipUtplsqlTests property to true.</p> <pre><code><configuration>\n <skipUtplsqlTests>true</skipUtplsqlTests>\n</configuration>\n</code></pre> <p>You can also skip the tests via the command line by executing the following command:</p> <pre><code>mvn install -DskipTests\n</code></pre>"},{"location":"utPLSQL-maven-plugin.html#skipping-by-default","title":"Skipping by Default","text":"<p>If you want to skip tests by default but want the ability to re-enable tests from the command line, you need to go via a properties section in the pom:</p> <pre><code><configuration>\n <skipUtplsqlTests>true</skipUtplsqlTests>\n</configuration>\n</code></pre> <p>This will allow you to run with all tests disabled by default and to run them with this command:</p> <pre><code>mvn install -DskipUtplsqlTests=false\n</code></pre>"},{"location":"utPLSQL-maven-plugin.html#configuration","title":"Configuration","text":"<p>Please refer to the following usage example for the parameters descriptions:</p> <pre><code><project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n <modelVersion>4.0.0</modelVersion>\n\n <groupId>org.my_org</groupId>\n <artifactId>my-artifact-name</artifactId>\n <version>1.0.0</version>\n\n <properties>\n <!-- URL of the connection to the database. -->\n <!-- Can also be passed as execution parameters. -->\n <!-- -DdbUrl=\"jdbc:oracle:thin:@127.0.0.1:1521:xe\" -->\n <dbUrl>url_of_connection</dbUrl>\n <!-- Database connection user. -->\n <!-- -DdbUser=\"user\" -->\n <dbUser>user</dbUser>\n <!-- Database connection password. -->\n <!-- -DdbPassword=\"password\" -->\n <dbPass>password</dbPass>\n </properties>\n\n <build>\n <plugins>\n <plugin>\n <groupId>org.utplsql</groupId>\n <artifactId>utplsql-maven-plugin</artifactId>\n <version>3.1.11</version>\n <executions>\n <execution>\n <goals>\n <goal>test</goal>\n </goals>\n <configuration>\n <!-- REQUIRED PARAMETERS -->\n\n <!-- A list of tests suite paths. -->\n\n <!-- The path(s) can be in one of the following formats: -->\n <!-- schema[.package[.procedure]] -->\n <!-- schema:suite[.suite[.suite][...]][.procedure] -->\n <!-- Both formats can be mixed in the list. -->\n <!-- If only schema is provided, then all suites -->\n <!-- owned by that schema are executed. -->\n <paths>\n <path>schema_name</path>\n </paths>\n\n <sources>\n <source>\n <!-- Path to project source files. -->\n <directory>src/test/resources/scripts/sources</directory>\n <!-- File patterns to include. -->\n <includes>\n <include>**/*pkg</include>\n <include>**/*pkb</include>\n </includes>\n </source>\n </sources>\n\n <tests>\n <test>\n <!-- Path to project test files. -->\n <directory>src/test/resources/scripts/test</directory>\n <!-- File patterns to include. -->\n <includes>\n <include>**/*pkg</include>\n <include>**/*pkb</include>\n </includes>\n </test>\n </tests>\n\n <!-- OPTIONAL PARAMETERS -->\n\n <!-- Continue in case of failure. -->\n <!-- Defaults to: ${maven.test.failure.ignore} -->\n <ignoreFailure>false</ignoreFailure>\n\n <!-- Skip the utPLSQL version compatibility check. -->\n <!-- Defaults to: false -->\n <skipCompatibilityCheck>false</skipCompatibilityCheck>\n\n <!-- Skip the tests -->\n <!-- Defaults to: false -->\n <skipUtplsqlTests>false</skipUtplsqlTests>\n\n <!-- Enables DBMS_OUTPUT -->\n <!-- Defaults to: false -->\n <dbmsOutput>false</dbmsOutput>\n\n <!-- Sets a timeout around Reporter creation and retries when not ready after a while. -->\n <!-- 0 = no timeout. -->\n <oraStuckTimeout>0</oraStuckTimeout>\n\n <!-- A list of tags to run. -->\n <tags>\n <tag>test_tag</tag>\n </tags>\n\n <!-- Enables random order of test executions. -->\n <randomTestOrder>true</randomTestOrder>\n <!-- Sets the seed to use for random test execution order. If set, it sets -random to true. -->\n <randomTestOrderSeed>5</randomTestOrderSeed>\n\n <!-- Comma-separated object list to include in the coverage report. -->\n <!-- Format: [schema.]package[,[schema.]package ...]. -->\n <!-- See coverage reporting options in framework documentation. -->\n <includeObject>app.test1,app.test2</includeObject>\n\n <!-- Comma-separated object list to exclude from the coverage report. -->\n <!-- Format: [schema.]package[,[schema.]package ...]. -->\n <!-- See coverage reporting options in framework documentation. -->\n <excludeObject>app.test1,app.test2</excludeObject>\n\n <!-- Regular expression to match against schema name to include in coverage -->\n <includeSchemaExpr>app.test1,app.test2</includeSchemaExpr>\n\n <!-- Regular expression to match against schema name to exclude in coverage -->\n <excludeSchemaExpr>app.test1,app.test2</excludeSchemaExpr>\n\n <!-- Regular expression to match against schema name to include in coverage -->\n <includeObjectExpr>app.test1,app.test2</includeObjectExpr>\n\n <!-- Regular expression to match against object name to exclude in coverage -->\n <excludeObjectExpr>app.test1,app.test2</excludeObjectExpr>\n\n <!-- List of reporters. -->\n <!-- You can pass the name of the reporter and/or the output file -->\n <!-- of the reporter and/or if the report is logged to the console. -->\n <!-- If you don't pass any reporter, UT_DOCUMENTATION_REPORTER will be used. -->\n <!-- This is a current list of the names of the reporters, -->\n <!-- see UtPLSQL documentation in order to check the final list: -->\n <!-- UT_DOCUMENTATION_REPORTER -->\n <!-- UT_COVERAGE_HTML_REPORTER -->\n <!-- UT_TEAMCITY_REPORTER -->\n <!-- UT_XUNIT_REPORTER -->\n <!-- UT_COVERAGE_SONAR_REPORTER -->\n <!-- UT_SONAR_TEST_REPORTER -->\n <reporters>\n <reporter>\n <name>UT_COVERAGE_SONAR_REPORTER</name>\n <!-- The file output path. -->\n <fileOutput>utplsql/coverage-sonar-reporter.xml</fileOutput>\n <!-- Indicates if should write to console. -->\n <consoleOutput>true</consoleOutput>\n </reporter>\n <reporter>\n <name>UT_SONAR_TEST_REPORTER</name>\n <fileOutput>utplsql/sonar-test-reporter.xml</fileOutput>\n <consoleOutput>false</consoleOutput>\n </reporter>\n <reporter>\n <name>UT_TEAMCITY_REPORTER</name>\n </reporter>\n </reporters>\n\n <!-- Custom source code mapping options. -->\n <!-- See coverage reporting options in framework documentation. -->\n <sourcesOwner>code_owner</sourcesOwner>\n <sourcesRegexExpression>.*/\\w+/(\\w+)/(\\w+)\\.\\w{3}</sourcesRegexExpression>\n <sourcesOwnerSubexpression>app</sourcesOwnerSubexpression>\n <sourcesNameSubexpression>2</sourcesNameSubexpression>\n <sourcesTypeSubexpression>1</sourcesTypeSubexpression>\n <sourcesCustomTypeMapping>\n <customTypeMapping>\n <type>package body</type>\n <customMapping>package_bodies</customMapping>\n </customTypeMapping>\n </sourcesCustomTypeMapping>\n\n <!-- Custom test code mapping options. -->\n <!-- See coverage reporting options in framework documentation. -->\n <testsOwner>tests_owner</testsOwner>\n <testsRegexExpression>.*/\\w+/(\\w+)/(\\w+)\\.\\w{3}</testsRegexExpression>\n <testsOwnerSubexpression>test</testsOwnerSubexpression>\n <testsNameSubexpression>2</testsNameSubexpression>\n <testsTypeSubexpression>1</testsTypeSubexpression>\n <testsCustomTypeMapping>\n <customTypeMapping>\n <type>package body</type>\n <customMapping>package_bodies</customMapping>\n </customTypeMapping>\n </testsCustomTypeMapping>\n </configuration>\n </execution>\n </executions>\n </plugin>\n </plugins>\n </build>\n</project>\n</code></pre> <p>More project samples are available in the <code>src/test/resources-its/org/utplsql/maven/plugin/UtPlsqlMojoIT</code> directory:</p> <ul> <li>simple-project: Minimalist test project with standard project directory structure.</li> <li>regex-project: Overrides project directory structure and use additional parameters (sourcesRegexExpression, testsRegexExpression, ...), to tell utPLSQL how project files should be mapped into database objects.</li> <li>type-mapping-project: Example how to use regex and custom type parameters together.</li> <li>owner-param-project: Demonstrates how to use sourcesOwner and testsOwner parameters.</li> </ul>"},{"location":"utPLSQL-maven-plugin.html#comparison-with-utplsql-cli","title":"Comparison with utPLSQL CLI","text":"CLI short parameter CLI long parameter Maven XML path -c --color --failure-exit-code -p --path paths.path -f --format reporters.reporter.name -o reporters.reporter.fileOutput -s reporters.reporter.consoleOutput ignoreFailure -scc --skip-compatibility-check skipCompatibilityCheck --tags tags.tag -D --dbms_output dbmsOutput -r --random-test-order randomTestOrder -seed --random-test-order-seed randomTestOrderSeed -exclude excludeObject -include includeObject -source_path sources.source.directory -owner sourcesOwner -regex_expression sourcesRegexExpression -type_mapping list of testsCustomTypeMapping.customTypeMapping -owner_subexpression sourcesOwnerSubexpression -type_subexpression sourcesTypeSubexpression -name_subexpression sourcesNameSubexpression -test_path tests.test.directory -owner testsOwner -regex_expression testsRegexExpression -type_mapping list of testsCustomTypeMapping.customTypeMapping -owner_subexpression testsOwnerSubexpression -type_subexpression testsTypeSubexpression -name_subexpression testsNameSubexpression"},{"location":"announcements/index.html","title":"Announcements","text":""},{"location":"announcements/welcome-to-new-web-site.html","title":"Welcome to new web site","text":"<p>Welcome to the new utPLSQL website. We are still in the early stages of moving to GitHub. </p> <p>The Code has already been moved.</p> <p>The following still needs to be done:</p> <ul> <li>Link Documentation to Website</li> <li>Update all of the URLS from SF.NET to GitHub</li> <li>Prior Downloads Moved</li> <li>Redirect old site to here</li> </ul>"},{"location":"announcements/documentation-is-now-hosted.html","title":"Documentation is now hosted.","text":"<p>Issue #19 to link documentation to the website has been completed. </p> <p>Issue #4 to update all URL sourceforge References to GitHub, has also been completed.</p> <p>You can visit the Documentation by using the menu item at the top of the page.</p>"},{"location":"announcements/version-231-has-been-released.html","title":"Version 2.3.1 has been released.","text":"<p>Version 2.3.1 has been released.</p> <p>This release updates documentation to reflect the move of the project to GitHub.</p> <p>Current and past releases can be located on our downloads page.</p>"},{"location":"announcements/version-3---pre-alpha.html","title":"Version 3 - pre-alpha","text":"<p>Version 3 in pre-alpha state</p> <p>Work on version 3 of utPLSQL has been moving quickly. Nearly every day version 3 has commits to repository with multiple developers contributing. </p> <p>It won't be long until we are in an alpha status. If your interested in following along or helping out with the project check out the version 3 readme.md</p> <p>We welcome support requests and discussions, feature requests, and bug reports in the GitHub issues log.</p>"},{"location":"announcements/version-3000-alpha1-released.html","title":"Version 3.0.0.0-Alpha1 released","text":"<p>Version 3 has reached alpha state.</p> <p>It can be downloaded from the releases page.</p> <p>It's being used now in multiple organizations with great success. The documentation work is progressing. However, we realize that quite a bit of work needs to be done in this area. </p> <p>We welcome support requests and discussions, feature requests, and bug reports in the GitHub issues log.</p>"},{"location":"announcements/version-v300-beta-has-been-released.html","title":"Version v3.0.0-beta has been released","text":"<p>Version 3 has reached beta state.</p> <p>It can be downloaded from the releases page.</p> <p>It's being used now in multiple organizations with great success. The documentation work is progressing. However, we realize that quite a bit of work needs to be done in this area. </p> <p>We welcome support requests and discussions, feature requests, and bug reports in the GitHub issues log.</p> <p>This is not an April Fools Day Joke, we really release it.</p>"},{"location":"announcements/utplsql-v300---released.html","title":"utPLSQL v3.0.0 - released!","text":""},{"location":"announcements/utplsql-v300---released.html#first-official-release-of-fully-rewritten-utplsql","title":"First official release of fully rewritten utPLSQL.","text":"<p>Key features</p> <ul> <li>Compatible with and tested on Oracle 11.2, 12.1 and 12.2</li> <li>multiple ways to compare data with matchers</li> <li>native comparison of complex types (objects/collections/cursors)</li> <li>in-depth and consistent reporting of failures and errors for tests</li> <li>tests identified and configured by annotations</li> <li>hierarchies of test suites configured controlled by annotations</li> <li>automatic (configurable) transaction control using annotations</li> <li>Build-in coverage reporting</li> <li>Integration with SonarQube, Coveralls, Jenkins and Teamcity using reporters</li> <li>plugin architecture for reporters and matchers</li> <li>flexible and simple test invocation</li> <li>multi-reporting and test real-time progress test-run from using utPLSQL-sql-cli</li> </ul>"},{"location":"announcements/utplsql-v301---released.html","title":"utPLSQL v3.0.1 - released","text":"<p>utPLSQL v3.0.1 - released</p>"},{"location":"announcements/utplsql-v301---released.html#issues-solved-in-the-release","title":"Issues solved in the release","text":"<ul> <li>Suite/test description now support commas and inner closing brackets</li> <li>Failure message when comparing different datatypes was improved</li> <li>Users, packages and procedures with $ and # in the name are now supported</li> <li>Improved reporting on the line of the expectation failed in the test procedure</li> <li>Fixed but with multibyte character sets</li> <li>Fixed prompts for install of synonyms bug</li> <li>Fixed HTML Coverage reporting on schema</li> </ul>"},{"location":"announcements/utplsql-v301---released.html#other-changes","title":"Other changes","text":"<ul> <li>Add MD5 checksum to releases</li> <li>Fix deployment to gh-pages branch on TAG bug</li> <li>Small issues in the documentation</li> </ul>"},{"location":"announcements/utplsql-v302---released.html","title":"utPLSQL v3.0.2 - released","text":"<p>utPLSQL v3.0.2 - released</p> <p>Changes in this release</p>"},{"location":"announcements/utplsql-v302---released.html#documentation","title":"Documentation","text":"<ul> <li>Documentation now refers to migration project</li> <li>Documentation now refers to a valid object name: ut_file_mapping</li> <li>Install and Uninstall scripts are now much more readable</li> <li>Install guide now provides snippet on how to download latest release on Windows</li> </ul>"},{"location":"announcements/utplsql-v302---released.html#installation","title":"Installation","text":"<ul> <li>Added override user/password/tablespace for install_headless</li> <li>Installation is now smooth even if profiler tables already exist</li> </ul>"},{"location":"announcements/utplsql-v302---released.html#internal-improvements","title":"Internal improvements","text":"<ul> <li>Improved reporting from RunTest</li> <li>Fixed publishing of release documentation history</li> </ul>"},{"location":"announcements/utplsql-v302---released.html#improvements-and-fixes","title":"Improvements and fixes","text":"<ul> <li>Fixed rare issue with ORA-22813: operand value exceeds system limits</li> <li>Stack trace is now properly parsed on all machines</li> <li>The --%disabled annotation on suite level is now reporting all tests as disabled</li> <li>Coverage reporting is now properly filtering test packages on that use suitepath</li> <li>Line of code for failed expectation is now also shown for unit tests owned by other users</li> <li>Line no of failed test is now properly reported when using ut.fail</li> <li>Annotation parameter list can now have spaces before/after brackets</li> <li>Warnings in documentation reporter are now properly numbered</li> <li>Documentation reporter is now providing a timing information for each test</li> <li>by xUnit reporter now displays name of the package/procedure if suite/test has no description</li> <li>Fixed errors with multi-byte characters in conversion from/to clob</li> </ul>"},{"location":"announcements/utplsql-v303---released.html","title":"Changes in this release","text":""},{"location":"announcements/utplsql-v303---released.html#new-features","title":"New features","text":"<ul> <li>Added ability to exclude columns/attributes for cursor/object/collection comparison. Xpath can be used for column/attribute exclusion</li> <li>Added reporting to module, action, client_info fields of the v$session.</li> <li>Calling ut_runner.run procedures can now raise exception if any test failed</li> <li>Added ability to check version compatibility ut_runner.version_compatibility_check</li> </ul>"},{"location":"announcements/utplsql-v303---released.html#improvements-and-fixes","title":"Improvements and fixes","text":"<ul> <li>Fixed bug with framework executing multiple packages with similar names when using suitepaths</li> <li>Cursor comparison now supports cursors on Global Temporary Table</li> <li>Increased allowed chars for annotation name to 250</li> <li>Cursor comparison now supports cursors with more than 1000 rows</li> <li>dba_ views are now used (if available), increasing performance of the framework</li> <li>Changed how version number reporting in functions ut_runner.version, ut_run.version</li> <li>Improved warning message when implicit commit occurs</li> <li>Fixed Sonar Unit Test reporting for test suites with suitepth</li> <li>Fixed problem with identifying annotations when windows newline is used in package sources</li> </ul>"},{"location":"announcements/utplsql-v303---released.html#documentation-fixes","title":"Documentation fixes","text":"<ul> <li>Moved CONTRIBUTING.md to project root and updated content</li> <li>Fixed coverage format documentation</li> <li>Small documentation fixes</li> </ul>"},{"location":"announcements/utplsql-v303---released.html#internal-improvements","title":"Internal improvements","text":"<ul> <li>Added self-testing using released version of utPLSQL</li> <li>Sonar reporting disabled for PRs</li> <li>Moved to project-owned Docker images created by scripts from utPLSQL/docker-scripts project</li> <li>Added source_path and test_path parameters for coverage reporters</li> <li>Changed the way ut_file_mapper handles default parameters</li> <li>Improved performance and stability of access to internal framework tables</li> <li>Updated myStats library to v3</li> <li>ut_output_buffer is now abstracted from caller</li> </ul>"},{"location":"announcements/utplsql-v304---released.html","title":"Changes in this release","text":""},{"location":"announcements/utplsql-v304---released.html#improvements-and-fixes","title":"Improvements and fixes","text":"<ul> <li>Removed overloaded procedures <code>ut_runner.run</code></li> <li>utPLSQL will not not open new transaction when running tests</li> <li>Added buffering of dbms_output before the run</li> <li>Removed <code>ut_expectation</code> sub-types</li> <li>Restructured annotations and added caching to improve framework start-up time </li> <li>Savepoint name is now generated from sys_guid to avoid issues on Windows-based Oracle instances</li> <li>Fixed XML/HTML special characters in reporters</li> <li>Unified handling of failure reporting across reporters</li> </ul>"},{"location":"announcements/utplsql-v304---released.html#documentation-fixes","title":"Documentation fixes","text":"<ul> <li>Fixed link to contributing guide in the doc</li> <li>Added example of handling exceptions to documentation</li> <li>Added example for custom expectation-fail message in docs</li> </ul>"},{"location":"announcements/weve-released-utplsql-cli.html","title":"We've released utPLSQL-cli","text":""},{"location":"announcements/weve-released-utplsql-cli.html#first-official-release-of-command-line-client-for-utplsql","title":"First official release of command line client for utPLSQL.","text":"<p>You may find the client on the download page</p>"},{"location":"announcements/weve-released-utplsql-cli.html#requirements","title":"Requirements","text":"<ul> <li>Java8</li> <li>Oracle JDBC driver file (ojdbc8.jar) is required </li> <li>Oracle i18n driver file (orai18n.jar) is required for national character-set support</li> </ul> <p>Both driver files need to be downloaded and placed in <code>utPLSQL-cli/lib</code> folder</p>"},{"location":"announcements/weve-released-utplsql-cli.html#key-features","title":"Key features","text":"<ul> <li>connectivity to Oracle database without Oracle client software (needs JDBC driver)</li> <li>support for multiple reporters and multiple output files</li> <li>real-time reporting to screen (depends on reporter implementation)</li> <li>documentation reporting in color</li> <li>mapping of project files to database objects (needed for Sonar reporting)</li> <li>support for customized project file-mapping rules</li> </ul>"},{"location":"announcements/weve-released-utplsql-cli.html#supported-utplsql-versions","title":"Supported utPLSQL versions","text":"<ul> <li>utPLSQL v3.0.0</li> <li>utPLSQL v3.0.1</li> <li>utPLSQL v3.0.2</li> <li>utPLSQL v3.0.3</li> <li>utPLSQL v3.0.4</li> </ul>"},{"location":"announcements/utplsql-cli-v310-released.html","title":"utPLSQL-cli v3.1.0 released","text":""},{"location":"announcements/utplsql-cli-v310-released.html#utplsql-cli-v310-released","title":"utPLSQL-cli v3.1.0 released","text":"<p>Release download page Readme</p>"},{"location":"announcements/utplsql-cli-v310-released.html#requirements","title":"Requirements","text":"<ul> <li>Java8</li> <li>Oracle JDBC driver file (ojdbc8.jar) is required </li> <li>Oracle i18n driver file (orai18n.jar) is required for national character-set support</li> </ul> <p>Both driver files need to be downloaded and placed in <code>utPLSQL-cli/lib</code> folder</p>"},{"location":"announcements/utplsql-cli-v310-released.html#compatibility","title":"Compatibility","text":"<p>This version of java-api is compatible with all versions of utPLSQL from 3.0.0 to 3.1.0. We encourage you to always use the latest version of cli to communicate with a v3 core.</p>"},{"location":"announcements/utplsql-cli-v310-released.html#changes-in-this-release","title":"Changes in this release","text":"<p>Enhancements - Support for custom reporters. Just call utplsql run user/pass@connstr -f=my_custom_reporter and cli will try to use a database-reporter with the given name - Assets necessary for CoverageHTMLReporter are written to $outputFileName-assets folder (utPLSQL/utPLSQL-java-api#39) - Realtime-Feedback: Output to screen is immediate, output to files is in bulks (#68) - NLS-Support from environment (#56)</p> <p>Bugfixes - The correct usage is now stated in help message (#63) - Several small improvements</p> <p>For more info on improvements and fixes, check out the blog post from Samuel Nitsche</p>"},{"location":"announcements/better-late-than-never.html","title":"Announcing utPLSQL 3.1.0 and 3.1.1","text":"<p>On April 25th, a major release 3.1.0 of utPLSQL was published on github and the information was not published on our site.</p> <p>Right after the release two issues were found resulting in bug fixes and release 3.1.1</p>"},{"location":"announcements/better-late-than-never.html#version-311-bug-fixes","title":"Version 3.1.1 bug-fixes","text":"<ul> <li>Block coverage reporting doesn't work on schema other than framework owner (https://github.com/utPLSQL/utPLSQL/issues/653)</li> <li>Reporter threads timeout and do not produce outputs when running with <code>utplsql-cli</code> and idle time exceeds 1 minute (https://github.com/utPLSQL/utPLSQL/issues/652)</li> </ul> <p>Release 3.1.1 download page</p>"},{"location":"announcements/better-late-than-never.html#version-310-release-notes","title":"Version 3.1.0 release notes","text":"<p>Important Notice</p> <p>Starting with this release, <code>utPLSQL-sql-cli</code> is no longer supported. Use <code>utPLSQL-cli</code> release 3.1.0 or above to interact with this and upcoming versions of utPLSQL.</p>"},{"location":"announcements/better-late-than-never.html#enhancements","title":"Enhancements","text":""},{"location":"announcements/better-late-than-never.html#reporting","title":"Reporting","text":"<ul> <li>Added support for extended block coverage on Oracle 12.2 and above. Coverage reporters will now indicate partly covered lines (where applicable by coverage format).</li> <li>Added new <code>ut_tfs_junit_reporter</code> for MS Team Foundation Server to support old JUnit xml format</li> <li>Added new coverage reporter <code>ut_coverage_cobertura_reporter</code></li> <li>Fixed compatibility issues with <code>ut_xunit_reporter</code>. The reporter now conforms to the format specification.</li> <li>Added <code>ut_junit_reporter</code> as a base for <code>ut_xunit_reporter</code>. The <code>ut_xunit_reporter</code> remains active for backward compatibility but is considered depreciated</li> <li>Added reporting of differences when comparing cursors, oracle object and table types</li> <li>Aligned <code>ut_documentation_reporter</code> to display tests annotated<code>--%disabled</code> as <code>DISABLED</code></li> <li>Added support for reporters that don't provide output to the API (reporters saving data to DB)</li> <li>Improved API so that it's possible to support custom reporters from <code>utPLSQL-java-api</code> without code changes</li> </ul>"},{"location":"announcements/better-late-than-never.html#annotations","title":"Annotations","text":"<ul> <li>added <code>throws</code> annotation to simplify writing tests for code that throws an exception</li> <li>added <code>context</code> to enable grouping of tests into sub-suite in a test suite package</li> <li>added warnings on invalid/misplaced annotations</li> <li>added support for multiple declarations of before/after procedures</li> <li>added propagation of rollback type defined on parent suite within suitepath</li> </ul>"},{"location":"announcements/better-late-than-never.html#expectations","title":"Expectations","text":"<ul> <li>Added <code>have_count</code> matcher for checking cursor rows/collection elements count</li> <li>Added <code>include()</code> and <code>exclude()</code> extensions to cursor and object/collection data comparison</li> <li>Added <code>diff</code> functionality for cursor, object and collection data </li> <li>When comparing cursors, column data-type is now also checked for equality</li> <li>Changed behavior of execution of <code>ut.expect()</code> on closed cursor (#548)</li> <li>Added support for cursors with implicitly named columns</li> </ul>"},{"location":"announcements/better-late-than-never.html#general-improvements","title":"General improvements","text":"<ul> <li>Output buffer for reporting is now reporter-agnostic.</li> <li>cli is no longer not interacting with output buffer but uses reporters to retrieve data instead.</li> <li>Added ability to mark expectation syntax as deprecated and report warnings on deprecation</li> <li>Added ability to get a list of annotations for a schema</li> <li>Refactoring of annotation parsing </li> <li>Refactoring of suite building</li> <li>Migrated part of old script-based tests to new utPLSQL v3 tests</li> <li>Documentation fixes and improvements</li> <li>Reporters now provide a method to get description</li> <li>Test execution continues even when encountered <code>Existing state of packages was discarded/invalidated</code> exceptions (<code>ORA-04068</code>/<code>ORA-04061</code>). The whole suite will execute, test result reports will be available and the exception will be re-thrown to the user after the run was finished. (#504)</li> </ul>"},{"location":"announcements/better-late-than-never.html#bug-fixes","title":"Bug-fixes","text":"<ul> <li>Coverage schema had to be explicitly provided, even when using <code>a_include_objects</code> (#511)</li> <li>utPLSQL fails to run, when one of suite packages has no newline between <code>--%suite</code> and procedure-specific annotations. (#514 / #516)</li> <li>Fixed false-negative code coverage reporting on labelled <code>end loop</code> elements (#539)</li> <li>Fixed issue with invalid suite grouping when running <code>xunit_reporter</code> (#547)</li> <li>Code coverage was always showing first report gathered in a session (#562)</li> <li>Wrong format of time in XUnit_reporter when running on German locale (using comma as decimal separator) (#572)</li> <li>Fixed issue with wrong exception getting thrown when suite failed and there was a pending distributed transaction (#601)</li> <li>Fixed file-mapper issue where two files were mapped into the same object and caused <code>ORA-00001: unique constraint (UTP3.UT_COVERAGE_SOURCES_TMP_PK) violated</code> (#568)</li> </ul>"},{"location":"announcements/utplsql-v312-released.html","title":"Changes in release 3.1.2","text":""},{"location":"announcements/utplsql-v312-released.html#new-features","title":"New features","text":"<ul> <li>Added ability to join and compare cursor content by specific columns (PK/UK) (#453)</li> <li>Added support for comma separated list of suite paths/packages when calling <code>ut.run</code> (#479)</li> <li>Added ability to run a test package that got invalidated due to dependency invalidation (#489)</li> <li>Added support for package level constants and predefined exceptions in <code>--%throws</code> annotation (#685)</li> <li>Added support for standalone <code>--%beforeall</code>, <code>--%beforeeach</code>, <code>--%afterall</code>, <code>--%aftereach</code> annotations with list of procedures to execute (#649)</li> <li>Added support for list of procedure names in before/after annotations (#649)</li> <li>Added support for BLOB/CLOB in <code>is_empty()</code> matcher (#707)</li> </ul>"},{"location":"announcements/utplsql-v312-released.html#enchancements","title":"Enchancements","text":"<ul> <li>utPLSQL will now provide additional warnings, when unsupported annotations are found in a unit test suite package (#624)</li> <li>utPLSQL will now produce valid XML in UT_JUNIT_REPORTER when dbms_output or test results contain <code><![CDATA[</code> text (#643)</li> <li>improved installation process for non-DBA users (#658)</li> <li>added <code>uninstall_all.sql</code> script that completely removes utPLSQL objects (#673)</li> <li>Changed the way contexts are named (#674)</li> <li>Added ability to pass client encoding information for XML/HTML reporting (requires utPLSQL-cli 3.1.1) (#676)</li> <li>Exposed base objects for expectations, so that IDE like DataGrip can provide auto-complete (#675)</li> <li>Both context-name as well as procedure inside context can now be passed as parameter to <code>ut.run()</code> (#679)</li> <li>Added validation of privileges before installation of utPLSQL (#693)</li> </ul>"},{"location":"announcements/utplsql-v312-released.html#bug-fixes","title":"Bug-fixes","text":"<ul> <li>UT_JUNIT_REPORTER does not report tests when procedure names are not all lower-case (#659) (#696)</li> <li>Fixed utPLSQL installation order to avoid warnings/failures on install (#657)</li> <li>Fixed uninstall process for utPLSQL (#673)</li> <li>Fixed syntax errors in HTML coverage report (#681) (#682)</li> <li>Fixed install requirements documentation (#687)</li> <li>Fixed capturing of DBMS_OUTPUT buffer at the start of test run (#686)</li> </ul>"},{"location":"announcements/utplsql-v312-released.html#internal-enhancements","title":"Internal enhancements","text":"<ul> <li>Added continuous testing of XML/HTML reports format (#684)</li> <li>Added sonarcloud branch-based and PR code analysis (#708)</li> <li>Added ability to trigger builds on sub-projects (#501)</li> </ul>"},{"location":"announcements/utplsql-cli-v312-released.html","title":"Changes in release 3.1.2","text":""},{"location":"announcements/utplsql-cli-v312-released.html#compatibility","title":"Compatibility","text":"<p>This version of utPLQL-cli is compatible with all versions of utPLSQL from 3.0.0 to 3.1.3. We encourage you to always use the latest version of cli to communicate with a v3 core.</p>"},{"location":"announcements/utplsql-cli-v312-released.html#new-features","title":"New Features","text":"<ul> <li>New command <code>utplsql info [user/password@connectstring]</code> #77 </li> <li>New command <code>utplsql reporters user/password@connecstring</code> </li> <li>Cli tries to connect to oracle via thick-driver first and use thin-driver as fallback #88 #90 #91 </li> </ul>"},{"location":"announcements/utplsql-cli-v312-released.html#enhancements","title":"Enhancements","text":"<ul> <li>Limit number of connections to number of reporters+1 #85</li> <li>Include JAXB library so utPLSQL-cli can be run on java 9+10 #82 </li> <li>There is however still a problem when using HTMLCoverageReporter and Java 9/10</li> <li>Improved documentation and help-command #31 </li> <li>An existant NLS_LANG-variable will now lead to corresponding <code>ALTER SESSION</code> statements when connecting #101 </li> </ul>"},{"location":"announcements/utplsql-cli-v312-released.html#bugfixes","title":"Bugfixes","text":"<ul> <li>HTML Coverage assets are placed and referenced correctly when using output file in subdirectory #94 </li> <li>Java-locale is now correctly derived from LC_ALL or LANG environment variable, not from NLS_LANG #101 </li> </ul>"},{"location":"announcements/utplsql-cli-v312-released.html#internal-enhancements","title":"Internal enhancements","text":"<ul> <li>Refactoring of Command architecture</li> <li>Refactoring of Connection handling</li> <li>Improved Error handling</li> </ul>"},{"location":"announcements/how-to-integrate-utplsql-into-visual-studio.html","title":"How to integrate utPLSQL into Visual Studio","text":"<p>How to easily integrate @utPLSQL into @VisualStudio via External Tools.</p> <p></p> <p>Tweet by Der_Pesse</p>"},{"location":"announcements/utplsql-v313-released.html","title":"Changes in release 3.1.3","text":""},{"location":"announcements/utplsql-v313-released.html#new-features","title":"New features","text":"<ul> <li>added function <code>ut_runner.is_test</code> #788</li> <li>added function <code>ut_runner.is_suite</code> #787</li> <li>added function <code>ut_runner.has_suites</code> #786</li> <li>added ability to disable automatic rollback for a test-run #784</li> <li>when invoked with package name, utPLSQL will now run only tests from specified package even if package has child packages by suitepath #776</li> </ul>"},{"location":"announcements/utplsql-v313-released.html#enhancements","title":"Enhancements","text":"<ul> <li>Improved performance of schema-scanning and utPLSQL startup #778</li> <li>Improved performance of output-buffer #777</li> <li>Improved documentation to mention ability to pass client encoding for HTML & XML reports #775 </li> <li>Improved documentation for cursor comparison to mention challenges with TIMESTAMP bind variables </li> </ul>"},{"location":"announcements/utplsql-v313-released.html#bug-fixes","title":"Bug-fixes","text":"<ul> <li>utPLSQL code coverage will now work properly with long object names #716</li> <li>utPLSQL installation will now also work properly, when user performing the install has <code>ANY</code> grants #737 </li> <li>fixed documentation bug for <code>--%context</code> with <code>--%displayname</code> #726</li> <li>fixed Teamcity reporter issues with missing escape for some characters and long messages #747 </li> <li>fixed issue with sonar test results reporter when contexts are used #749</li> <li>fixed issue with ORA-07455 getting thrown on cursor comparison #752 </li> <li>fixed issue with wrong failure message for unordered data #764</li> <li>fixed missing privilege issue for unordered/join-by cursor data comparison #765 #770</li> </ul>"},{"location":"announcements/utplsql-v313-released.html#internal-enhancements","title":"Internal enhancements","text":"<ul> <li>added suite-level cache to allow for faster retrieval of suite contents and enable implementation of additional features #783 </li> </ul>"},{"location":"announcements/utplsql-v314-released.html","title":"Changes in release 3.1.4","text":""},{"location":"announcements/utplsql-v314-released.html#new-features","title":"New features","text":"<ul> <li>Added <code>to_contain</code> matcher for collections and cursors #79</li> <li>Added <code>unordered_columns</code> (<code>uc</code>) option for cursor comparison to ignore the order of the columns #779 </li> <li>Added <code>ut_debug_reporter</code> for debug logging #480 </li> <li>Added <code>ut_realtime_reporter</code> for utPLSQL-SQLDeveloper extension #795</li> </ul>"},{"location":"announcements/utplsql-v314-released.html#enhancements","title":"Enhancements","text":"<ul> <li>Improved performance of cursor comparison #780 </li> <li>Added support for installation on databases with block size < 8KB #848</li> <li>Added initial timeout to <code>ut_output_buffer</code> #840</li> <li>Enhanced performance of <code>get_reporters_list</code> function #814</li> <li>Moved calls of <code>dbms_lock.sleep</code> to <code>dbms_session</code> for newer DB versions #806</li> <li>utPLSQL coverage will now work without re-install after DB-upgrade from 12.1 to 12.2 #803 </li> </ul>"},{"location":"announcements/utplsql-v314-released.html#bug-fixes","title":"Bug fixes","text":"<ul> <li>Fixed problem with REGEXP in annotation parsing with NLS CANADIAN FRENCH #844</li> <li>Fixed issue with Rollback to savepoint failing on distributed transaction #839</li> <li>Fixed reporting of differences when comparing collections scalar values #835</li> <li>Fixed issue with test run failing due to too many transaction invalidators #834</li> <li>Fixed randomly occurring error during cursor comparison #827 </li> <li>utPLSQL install script will now support special characters in passwords #804</li> </ul>"},{"location":"announcements/utplsql-v314-released.html#documentation-improvements","title":"Documentation improvements","text":"<ul> <li>Fixed documentation examples for context annotation #851</li> <li>Added description on how to check version of utPLSQL #822</li> </ul>"},{"location":"announcements/utplsql-v314-released.html#internal-enhancements","title":"Internal enhancements","text":"<ul> <li>Implemented Sonar analysis on DBA Views #850</li> <li>Finished migration from old-tests #475</li> <li>Fixed shell scripts to support multiple unix dialects (especially for macOS) #796</li> <li>Added info on project support from Redgate #841</li> <li>Added <code>code_of_conduct</code> #836</li> <li>Added issue tempates #842</li> <li>Added utPLSQL logo #845 </li> </ul>"},{"location":"announcements/utplsql-v315-released.html","title":"Bugfix release for <code>v3.1.4</code>","text":""},{"location":"announcements/utplsql-v315-released.html#bug-fixes","title":"Bug fixes","text":"<ul> <li>Fixed a bug in release <code>3.1.4</code> where <code>to_be_empty</code> matcher was failing due to privileges #864</li> </ul>"},{"location":"announcements/utplsql-v316-released.html","title":"Bugfix release for <code>v3.1.5</code>","text":""},{"location":"announcements/utplsql-v316-released.html#bug-fixes","title":"Bug fixes","text":"<ul> <li>Fixed a bug in release <code>3.1.5</code> where <code>to_equal</code> matcher was failing due to privileges when comparing non sql diffable types #870</li> </ul>"},{"location":"announcements/utplsql-v316-released.html#improvements","title":"Improvements","text":"<ul> <li>Reduced number of information displaying about user defined type. We will now display only type name instead of full structure #866 </li> </ul>"},{"location":"announcements/utplsql-cli-v316-released.html","title":"Changes in release 3.1.6","text":""},{"location":"announcements/utplsql-cli-v316-released.html#compatibility","title":"Compatibility","text":"<p>This version of utPLQL-cli is compatible with all versions of utPLSQL from 3.0.0 to 3.1.6. We encourage you to always use the latest version of cli to communicate with a v3 core.</p>"},{"location":"announcements/utplsql-cli-v316-released.html#new-features","title":"New Features","text":"<ul> <li>CLI now logs some basic information to screen in addition to an eventually configured to-screen-reporter (#89, #76)</li> <li>This output can be avoided with the new <code>-q, --quiet</code> parameter</li> <li>Much more logging can be output with the new <code>-d, --debug</code> parameter</li> <li>It's possible to connect as sysdba now via <code>utplsql run \"sys as sysdba\"/pw@connectstring</code> (#115)</li> <li>The default timeout of 60 minutes is now configurable via the new <code>-t, --timeout</code> parameter (#124)</li> </ul>"},{"location":"announcements/utplsql-cli-v316-released.html#enhancements","title":"Enhancements","text":"<ul> <li>Timeout now returns error exit-code (#129)</li> <li>In case of Oracle stuck-scenario during createStatement, a warning is written to the screen and the same call for running the tests is retried up to 5 times. (#20)</li> <li>It's now possible to pass usernames containing <code>/</code> and passwords containing <code>@</code> by encapsulating those in the connectstring with <code>\"</code>: <code>utplsql run \"my/User\"/\"P@ssword\"@server:1521/Service</code> (#111)</li> <li>API-version is now stored in a separate, non-compiled file</li> </ul>"},{"location":"announcements/utplsql-cli-v316-released.html#bugfixes","title":"Bugfixes","text":"<ul> <li>Info command should now show the correct version information (#108)</li> <li>Non-argument call will output help (#110)</li> </ul>"},{"location":"announcements/utplsql-cli-v316-released.html#internal-enhancements","title":"Internal enhancements","text":"<ul> <li>Update of HikariCP</li> <li>Improvement of passing user/pw/connect info to connection pool</li> <li>Improvement of Error-Handling</li> <li>Cleanup of tests</li> </ul>"},{"location":"announcements/utplsql-is-continuously-tested-on-5-db-versions.html","title":"Oracle 19c DB added to our CI/CD process","text":"<p>We take all the possible effort to assure utPLSQL can be tested against t all supported Oracle database versions.</p> <p>Today, our automation got enriched with Oracle 19c database testing.</p> <p>Pavel Kaplya has prepared a new small Docker Image for Oracle 19c.</p> <p>Note:</p> <p>You can take advantage of our efforts and build your own small Docker images (non-PDB) using our docker-scripts. </p>"},{"location":"announcements/utplsql-is-continuously-tested-on-5-db-versions.html#continuous-testing-of-utplsql","title":"Continuous testing of utPLSQL","text":"<p>utPLSQL is now getting tested against five database versions: - Oracle 11g XE - Oracle 12c R1 - Oracle 12c R2 - Oracle 18c - Oracle 19c</p> <p>You can see our build process & test results on travis-ci.org/utPLSQL</p> <p>All of our deliverable projects use set of tools that are free to sue for Open-Source: - static code analysis using sonarcloud - publishing code coverage using coveralls - deploying java-api artifacts to packagecloud - deploying utPLSQL-cli artifacts to bintray - maven plugin publishing into maven repository</p> <p>All of our builds must pass quality gates (code quality/tests/code coverage) before we approve and merge pull requests.</p>"},{"location":"announcements/auto-run-utplsql-tests-with-oracle-sqlcl.html","title":"Auto-run utPLSQL tests with Oracle sqlcl","text":"<p>Today at #apexConn19.</p> <p>Sam Nitsche (blogger, presenter, testing & compassionate-coding advocate, utPLSQL-cli & utPLSQL-api developer) met with Kris Rice (Oracle SQLDeveloper, sqlcl, ORDS rock-star, developer, advocate, presenter, mentor) </p> <p>As a result, something amazing happened. Within an hour or so, Kris created a fully functional auto-runner for utPLSQL tests within Oracle sqlcl.</p> <p></p> <p>See for yourself</p> <p>If you want to use sqlcl to run your tests, each time you compile a package, have a look at this script for sqlcl.</p> <p>Huge thank you to Kris and Sam! </p> <p>Amazing things can happen when right people meet at right time in right place. </p>"},{"location":"announcements/utplsql-v317-released.html","title":"utPLSQL v3.1.7 released","text":"<p>## New features</p> <ul> <li>Added support for comparing <code>json</code> in Oracle 12.2 and above #924</li> <li>Introduced <code>tag</code> annotation to enable tagging of tests and suites #66</li> <li>Added support for random order of test execution #422</li> </ul> <p>## Enhancements</p> <ul> <li>Added optional install with DDL trigger to speed up framework start #901</li> <li>Removed dependency on <code>dbms_utility.name_resolve</code> #569 #885</li> <li>New output buffer table structures improving performance and addressing timeout issues #915</li> </ul> <p>## Bug fixes</p> <ul> <li>Fixed <code>ut_realtime_reporter</code> missing warnings in test and suite output structures #936</li> <li>Fixed output_buffer purging error #934</li> <li>Fixed <code>join_by / exclude / include</code> invalid syntax on collection in anydata compare #912</li> <li>Fixed <code>ut_junit_reporter</code> producing invalid output on failing tests with long failure message #927</li> <li>Fixed <code>ut_sonar_test_reporter</code> producing invalid output on failing tests with long failure message #925</li> <li>Fixed <code>ut_coverage_cobertura_reporter</code> producing wrong line breaks which breaks the xml validation against DTD #917</li> <li>Fixed <code>exclude</code> option for ref cursor where column order was not resolved correctly #911</li> <li>Fixed <code>unordered</code> option for ref cursor with null values #914</li> <li>Fixed number precision when selecting from dual #907</li> <li>Fixed ref cursor errors with generated column names #902</li> <li>Fixed <code>ORA-00907</code> when comparing ref cursors with BINARY_ columns #899</li> <li>Fixed wrong results when comparing CLOBs with <code>to_be_like</code> in Oracle Database 11.2.0.4 due to Oracle Bug 14402514 #891</li> <li>Fixed performance issue with code coverage report on huge PL/SQL code base #882</li> </ul> <p>## Documentation improvements</p> <ul> <li>Added install instructions for DDL trigger #874</li> </ul> <p>## Internal enhancements</p> <ul> <li>Fixed SQL vulnerability on all input parameters used in dynamic SQL and PL/SQL #921</li> <li>Fixed message id in output buffer #916</li> <li>Included 19c database in self testing #909</li> <li>Introduced testing with multiple schemas and different grants #893</li> <li>Fixed installation script warnings #879</li> </ul>"},{"location":"announcements/utplsql-v317-released.html#changes-in-release-317","title":"Changes in release 3.1.7","text":""},{"location":"announcements/utplsql-cli-v317-released.html","title":"Changes in release 3.1.7","text":""},{"location":"announcements/utplsql-cli-v317-released.html#new-features","title":"New Features","text":"<ul> <li>CLI is now runnable from Java 8-12 (and probably also upcoming versions)</li> <li>CLI now uses Picocli instead of JCommander. This might have some impact on how parameters are interpreted, for example on windows machines when you define <code>-f=ut_documentation_reporter -o=\"output.txt\"</code> you will have to enclose the \"output.txt\" part as shown</li> <li>Support for Tags via <code>--tags=tag1[,tag2[,tag3]]</code>parameter (#157)</li> <li>Support for random order of test execution via <code>-r</code>/<code>--random-test-order</code> and <code>-seed</code>/<code>--random-test-order-seed</code> (#139)</li> <li>Ability to enable DBMS_OUTPUT from cli via <code>-D</code>/<code>--dbms_output</code> (#137)</li> </ul>"},{"location":"announcements/utplsql-cli-v317-released.html#enhancements","title":"Enhancements","text":"<ul> <li>Completely removed HikariCP (#158)</li> <li>A warning is shown if <code>orai18n.jar</code> is not on the classpath. This is highly recommended due to some strange behaviour of the jdbc-driver otherwise (#146, #153)</li> </ul>"},{"location":"announcements/utplsql-cli-v317-released.html#bugfixes","title":"Bugfixes","text":"<ul> <li>Type mapping (<code>-type_mapping</code>) parameter is now interpreted correctly (#143)</li> </ul>"},{"location":"announcements/utplsql-cli-v317-released.html#internal-enhancements","title":"Internal enhancements","text":"<ul> <li>Improvement of tests</li> <li>Refactoring towards immutability</li> <li>Added some more debug information</li> </ul>"},{"location":"announcements/utplsql-java-api-v317-released.html","title":"Changes in release 3.1.7","text":""},{"location":"announcements/utplsql-java-api-v317-released.html#highlights","title":"Highlights","text":"<ul> <li>utPLSQL java-api now supports JDK 8-12</li> <li>Support to call Tags</li> <li>Support for random order of test execution</li> </ul>"},{"location":"announcements/utplsql-java-api-v317-released.html#changes-in-public-api","title":"Changes in public API","text":"<ul> <li><code>CompatibilityProxy</code></li> <li>It's possible to instantiate it with an optional <code>assumedUtPlsql</code> version. This replaces the former <code>skipCompatibilityCheck</code> parameter</li> <li>Method <code>getDatabaseVersion</code> is now deprecated in favor of <code>getUtPlsqlVersion</code> and <code>getRealDbPlsqlVersion</code></li> <li><code>TestRunner</code></li> <li><code>getOptions</code> returns the current <code>TestRunnerOptions</code> now</li> </ul>"},{"location":"announcements/utplsql-java-api-v317-released.html#internal-changes","title":"Internal changes","text":"<ul> <li>Added several new tests</li> <li>Several small refactorings</li> <li>Additional logging</li> <li>Preparations to completely rewrite the api</li> </ul>"},{"location":"announcements/utplsql-java-api-v317-released.html#download","title":"Download","text":"<p>https://packagecloud.io/utPLSQL/utPLSQL-java-api/packages/java/org.utplsql/java-api-3.1.7.jar</p>"},{"location":"announcements/utplsql-java-api-v317-released.html#maven","title":"Maven","text":"<pre><code><dependency>\n <groupId>org.utplsql</groupId>\n <artifactId>java-api</artifactId>\n <version>3.1.7</version>\n</dependency>\n</code></pre>"},{"location":"announcements/utplsql-java-api-v317-released.html#gradle","title":"Gradle","text":"<pre><code>compile 'org.utplsql:java-api:3.1.7'\n</code></pre>"},{"location":"announcements/new-resources-section.html","title":"New Resources section","text":"<p>We just added a new section to our website: Resources.</p> <p>We will keep adding all kinds of examples, tutorials, videos, blog posts and other stuff related to utPLSQL to this page, but we might not know everything. </p> <p>So please, if you find something related to utPLSQL which is publicly (without a paywall) available or if you created something yourself, please let us know!</p>"},{"location":"announcements/utplsql-v318-released.html","title":"Changes in release 3.1.8","text":"<p>Download from GitHub</p>"},{"location":"announcements/utplsql-v318-released.html#new-features","title":"New features","text":"<ul> <li>Added support for session context to provide test and suite information during test run #963 #781 </li> <li>Added ability to invoke expectations without running framework #956 #963</li> <li>Failing expectations are now reported with call stack #967 #963</li> </ul>"},{"location":"announcements/utplsql-v318-released.html#enhancements","title":"Enhancements","text":"<ul> <li>Improved framework table private data protection #922 #954</li> <li>Improved install process. It is now unified for installation with both public and private synonyms #957 #954</li> <li>Improved reporting of warnings for integration with SQLDeveloper #964</li> <li>Improved query to retrieve coverage sources #981 #970</li> <li>Improved security around malicious utPLSQL owner name #920</li> </ul>"},{"location":"announcements/utplsql-v318-released.html#bug-fixes","title":"Bug fixes","text":"<ul> <li>Fixed cursor comparison on Oracle 11.2 #947 </li> <li>Fixed issue with retrieving suite data #977 #974 #978</li> <li>Application context is now reset in session after test run #951</li> </ul>"},{"location":"announcements/utplsql-v319-released.html","title":"Changes in release 3.1.9","text":""},{"location":"announcements/utplsql-v319-released.html#new-features","title":"New features","text":"<ul> <li>Added ability to define nested contexts within test suite #938</li> <li>Added ability to exclude tests/suites by tags when invoking a test-run #1007 #983</li> <li>Added new annotation <code>--%name</code> to allow for providing custom name for contexts #1016</li> </ul>"},{"location":"announcements/utplsql-v319-released.html#important-changes","title":"Important changes","text":"<p>The value of <code>--%context</code> annotation is no longer representing context <code>name</code>. This value is now context description (displayname). With this change, the <code>--%context</code> annotation is now aligned with <code>--%test</code> and <code>--%suite</code> annotation syntax.</p> <p>New annotation <code>--%name</code> was introduced to facilitate naming of contexts.</p>"},{"location":"announcements/utplsql-v319-released.html#enhancements","title":"Enhancements","text":"<ul> <li>Improved documentation for running tests</li> <li>Improved documentation for tags #1003</li> <li>Improved documentation for annotations</li> </ul>"},{"location":"announcements/utplsql-v319-released.html#bug-fixes","title":"Bug fixes","text":"<ul> <li>Fixed bug with bad stacktrace showing in failing/erroring test #1000</li> <li>Fixed issue with lack of validation for context name #966</li> <li>Fixed problem with install script privilege check for installation with DDL trigger #992</li> <li>Fixed issue with some common column names causing cursor comparison to fail #997</li> <li>Fixed issue with invocation of standalone expectations on cursor #998</li> </ul>"},{"location":"announcements/utplsql-v319-released.html#internal-improvements","title":"Internal improvements","text":"<ul> <li>Fixed runability of utplsql self-tests #968</li> </ul>"},{"location":"announcements/utplsql-v3110-released.html","title":"Changes in release 3.1.10","text":""},{"location":"announcements/utplsql-v3110-released.html#enhancements","title":"Enhancements","text":"<ul> <li>utPLSQL test runner is now validating arguments of <code>--%throws</code> annotations at runtime #721 #1033</li> <li>Documented limitations of insignificant spaces comparison in compound data #880</li> <li>utPLSQL will now detect empty annotation cache for schema even with DLL trigger enabled #975</li> <li>Order of procedures and annotation now determines default order of tests in suite #1036 </li> </ul>"},{"location":"announcements/utplsql-v3110-released.html#bug-fixes","title":"Bug fixes","text":"<ul> <li>Nested contexts are now properly identified #1034</li> <li>TeamCity test reporter is now including error message #1045</li> </ul>"},{"location":"announcements/utplsql-v3110-released.html#internal-improvements","title":"Internal improvements","text":"<ul> <li>All self-tests for utPLSQL framework can now be executed using test-owner schema #969</li> <li>Misleading rollback warning is no longer showing when running self-tests for utPLSQL #982</li> </ul>"},{"location":"announcements/utplsql-v3110-released.html#downloads","title":"Downloads","text":"<p>Download <code>v3.1.10</code> release version here</p>"},{"location":"announcements/plsql-developer-plugin-version-100-released.html","title":"PL/SQL Developer plugin released!","text":"<p>Happy new year! Thanks to Simon Martinelli utPLSQL v3+ is now integrated with PL/SQL Developer IDE</p>"},{"location":"announcements/plsql-developer-plugin-version-100-released.html#features","title":"Features","text":"<ul> <li>The Plugin enables PL/SQL Developer to run tests and code coverage with utPLSQL</li> <li>Tests and code coverage can be run for the current user from the tool ribbon or from the context menu on a package or a user</li> <li>Test results shown in a test runner window and the code coverage report will be opened in the default browser </li> </ul>"},{"location":"announcements/plsql-developer-plugin-version-100-released.html#documentation","title":"Documentation","text":"<p>See details of plugin usage in readme file </p>"},{"location":"announcements/plsql-developer-plugin-version-100-released.html#downloads","title":"Downloads","text":"<ul> <li>Download the plugin release from releases page</li> <li>Copy <code>PlsqlDeveloperUtPlsqlPlugin.dll</code> or <code>PlsqlDeveloperUtPlsqlPlugin_x86.dll</code> to the PlugIns directory of your PL/SQL Developer installation</li> </ul>"},{"location":"announcements/utplsql-v3111-released.html","title":"Changes in release 3.1.11","text":""},{"location":"announcements/utplsql-v3111-released.html#enhancements","title":"Enhancements","text":"<ul> <li>utPLSQL can now be used to generate coverage reports for external tools. See documentation Implemented in: #1079, resolves #1025</li> <li>Enhanced UT_COVERAGE_COBERTURA_REPORTER to better support TFS and GitLab. Implemented in #1137 and #1140, resolves #1107</li> <li>Added support for installation on Oracle 21c - removed dependency on DBMS_OBFUSCATION_TOOLKIT. Implemented in #1112, resolves #1111 and #1127</li> <li>Added support for running utPLSQL framework in parallel-enabled database. Implemented in #1160, resolves #1134</li> </ul>"},{"location":"announcements/utplsql-v3111-released.html#bug-fixes","title":"Bug fixes","text":"<ul> <li>Suite structure is built properly even with other than English TNS settings. Implemented in #1061, resolves #1060</li> <li>Fixed XML content reporting (CDATA) in UT_REALTIME_REPORTER used by SQLDeveloper plugin. Implemented in #1075, resolves #1073</li> <li>Fixed XML content reporting (CDATA) in JUnit reporter - regression. Implemented in #1085, resolves #1084</li> <li>Fixed issue with utPLSQL failing to run coverage reporting when trigger has overlapping name with procedure/function/package/type. Implemented in #1091, resolves #1086</li> <li>Fixed issue with parsing utPLSQL suites with DDL trigger when usign AUTHID clause. Implemented in #1093, resolves #1088</li> </ul>"},{"location":"announcements/utplsql-v3111-released.html#internal-improvements","title":"Internal improvements","text":"<ul> <li>Improved how privilege checks are handled by framework installation. Implemented in #1056, resolves #1050</li> <li>Restructured installation instructions to make it more readable. Implemented in #1063, resolves #1062</li> <li>Updated database requirements in documentation. Implemented in #1065, resolves #1064</li> <li>Removed duplicated call to install profiler tables. Implemented in #1164, resolves #1149</li> <li>Fixed failing internal framework tests on Oracle 21c. Implemented in #1158, resolves #1151</li> <li>Fixed confusing typo in documentation. Resolves #1154</li> <li>Moved build process from travis-ci.org to travis-ci.com. Implemented in #1152</li> <li>Added an example of reporter reporting all expectations, not only the failing ones. Implemented in #1092</li> </ul>"},{"location":"announcements/utplsql-v3111-released.html#downloads","title":"Downloads","text":"<p>Download <code>v3.1.11</code> release version here</p>"},{"location":"announcements/utplsql-v3112-released.html","title":"Changes in release 3.1.12","text":""},{"location":"announcements/utplsql-v3112-released.html#new-features","title":"New features","text":"<ul> <li>Added support for description in the <code>--%disabled</code> annotation. See documentation. Implemented in: #1183, resolves #610.</li> <li>Added support for native <code>JSON</code> datatype on Oracle <code>21c</code>. Implemented in #1181, resolves #1114.</li> <li>Added new mather <code>to_be_within( distance|pct ).of_(expoected)</code>. See documentation. Implemented in #1076, resolves #77.</li> </ul>"},{"location":"announcements/utplsql-v3112-released.html#enhancements","title":"Enhancements","text":"<ul> <li>Improved performance of SQL used to retrieve Coverage sources. Implemented in #1187, resolves #1169.</li> <li>Added ability for utPLSQL to gather coverage on code invoking DBMS_STATS package. Implemented in #1184, resolves #1097, #1094.</li> <li>Fixed typos and improved documentation. Implemented in #1173, #1171</li> </ul>"},{"location":"announcements/utplsql-v3112-released.html#bug-fixes","title":"Bug fixes","text":"<ul> <li>Actual and Expected are now correctly reported when comparing <code>JSON</code> data. Implemented in #1181, resolves #1113.</li> <li>Packages with removed annotations are now correctly recognized as non-utPLSQL packages. Implemented in #1180, resolves #1177.</li> <li>Fixed issues with comparison of nested object structures. Implemented in #1179, resolves #1082, #1083, #1098.</li> </ul>"},{"location":"announcements/utplsql-v3112-released.html#internal-improvements","title":"Internal improvements","text":"<ul> <li>Moved build and test process for utPLSQL from Travis to GithubActions. Implemented in #1175</li> </ul>"},{"location":"announcements/utplsql-v3112-released.html#downloads","title":"Downloads","text":"<p>Download <code>v3.1.12</code> release version here</p>"},{"location":"announcements/utplsql-maven-plugin-v3110-released.html","title":"Changes in release 3.1.10","text":""},{"location":"announcements/utplsql-maven-plugin-v3110-released.html#whats-changed","title":"What's Changed","text":"<ul> <li>Add new <code><ora-stuck-timeout></code> parameter - resolves #70</li> </ul>"},{"location":"announcements/utplsql-cli-v319-released.html","title":"Changes in release 3.1.9","text":""},{"location":"announcements/utplsql-cli-v319-released.html#whats-changed","title":"What's Changed","text":"<ul> <li>Bugfix/Locale-Info and Nullpointer by @pesse in #171</li> <li>Feature/cleanup maven jdbc by @jgebal in #176</li> <li>Support <code>a_coverage_schemes</code> option of utPLSQL by @pesse in #180</li> <li>Feature/GitHub actions by @jgebal in #202</li> <li>Add new --ora-stuck-timeout parameter by @pesse in #198</li> <li>Update dependencies by @pesse in #204</li> </ul>"},{"location":"announcements/new-website-design.html","title":"New website design","text":"<p>Today is #JoelKallmanDay.</p> <p>As memorial of Joel Kallman, on this day utPLSQL launched its new website using different engine.</p> <p>We have moved away from using Jekyll with GitHub Pages to host project and organization sites. Jekyll was simply too much hussle and we used MkDocs to generate offline documentation for utPLSQL that was packaged into the release zip file.</p> <p>So instead of using two different methods, wei will now use only one. MkDocs is now used for both utPSLQL offline and for online organization and project pages.</p> <p>Thanks to wonderful material theme and mike(versioning plugin) for MkDocs you may now enjoy the following new features:</p> <ul> <li>dark & light theme</li> <li>better navigation and menu in utPLSQL documentation</li> <li>documentation version dropdown</li> <li>powerful and fast search within documentation</li> </ul> <p>Hopefully, you will like the changes and enhancements. All the permanent links to old site should still be working. </p>"},{"location":"announcements/utplsql-v3113-released.html","title":"Changes in release 3.1.13","text":""},{"location":"announcements/utplsql-v3113-released.html#new-features","title":"New features","text":"<ul> <li>Add ability to run tests by part of a name. Fixed in #1203, resolves #470</li> </ul>"},{"location":"announcements/utplsql-v3113-released.html#enhancements","title":"Enhancements","text":"<ul> <li>Added documentation section on creating a custom reporter. Fixed in #1225, resolves #710</li> <li>Add ability to specify code coverage objects include/exclude masks as regular expressions. Fixed in #1186, resolves #1053</li> </ul>"},{"location":"announcements/utplsql-v3113-released.html#bug-fixes","title":"Bug fixes","text":"<ul> <li>Comparing collection that have long type names. Fixed in #1238, resolves #1235. </li> <li>Code coverage reporting on code with long lines. Fixed in #1240, resolves #1232, #1087. </li> <li>Code coverage reporting does not exclude tests. Fixed in #1226, resolves #1222. </li> <li>Uninstall script buffer overflow. Fixed in #1221, resolves #1220. </li> </ul>"},{"location":"announcements/utplsql-v3113-released.html#internal-improvements","title":"Internal improvements","text":"<ul> <li>Improved process of generating utPLSQL documentation. Implemented in 689bbd0, resolves #1237.</li> <li>Removed username env variables for internal development. Implemented in #1201, resolves #1200.</li> <li>Test execution data of utPLSQL project not showing on SonarCloud. Implemented in #1199, resolves #1198.</li> </ul>"},{"location":"announcements/utplsql-v3113-released.html#downloads","title":"Downloads","text":"<p>Download <code>v3.1.13</code> release version here</p>"},{"location":"announcements/utplsql-v3114-released.html","title":"utPLSQL v3.1.14 released","text":""},{"location":"announcements/utplsql-v3114-released.html#whats-changed","title":"What's Changed","text":"<ul> <li>Added support for <code>and</code> and <code>or</code> operators when running tests by tags by @lwasylow in #1250</li> <li>Allow for test runs over 4 hours by @jgebal in #1243</li> <li>Framework performance improvements by @jgebal in #1249</li> <li>Support multiple expectation failures with teamcity reporter by @jgebal in #1251</li> <li>Address issue where the not_to(contain) not run correctly by @lwasylow in #1246</li> <li>Fix regex to be NLS_SORT independent by @jgebal in #1253</li> <li>Fix output length error and output buffer. by @jgebal in #1255</li> <li>(docs): Update running-unit-tests.md - remove example by @gassenmj in #1261</li> <li>The line-rate is not recorded for packages and classes in cobertura coverage reporter by @lwasylow in #1269</li> <li>(docs): Fix nested list issue by @iamrachid in #1274</li> <li>Update TFS reporter to correct format by @lwasylow in #1270</li> </ul>"},{"location":"announcements/utplsql-v3114-released.html#new-contributors","title":"New Contributors","text":"<ul> <li>@gassenmj made their first contribution in #1261</li> <li>@iamrachid made their first contribution in #1274</li> </ul> <p>Full Changelog: v3.1.13...v3.1.14</p> <p>Download utPLSQL release <code>v3.1.14</code> here</p>"},{"location":"announcements/utplsql-v3201-released.html","title":"utPLSQL v3.2.01 released","text":""},{"location":"announcements/utplsql-v3201-released.html#important","title":"Important","text":"<ul> <li>Dropped support for Oracle Database versions older than 19c</li> </ul>"},{"location":"announcements/utplsql-v3201-released.html#new-features","title":"New features","text":"<ul> <li>Add TAP reporter by @WayneNani in #1305</li> </ul>"},{"location":"announcements/utplsql-v3201-released.html#enhancements-and-bug-fixes","title":"Enhancements and bug fixes","text":"<ul> <li>Added duplicate detection on cursor comparison using <code>join_by</code> by @lwasylow in #1295</li> <li>Fix code causing the object duration Oracle exception on oracle 23.26 by @lwasylow in #1310</li> <li>Packages with annotation-like comments are not test suites by @jgebal in #1313</li> <li>Performance improvements to annotation parsing by @lwasylow in #1312</li> <li>Updated documentation and copyright banners across source files @jgebal in #1319 </li> </ul> <p>Download utPLSQL release v3.2.01 here</p>"},{"location":"announcements/utplsql-v322-released.html","title":"utPLSQL v3.2.2 released","text":""},{"location":"announcements/utplsql-v322-released.html#whats-changed","title":"What's Changed","text":"<ul> <li>Filtering by tags fixed for schemas containing suite-paths and contexts by @jgebal in #1325</li> <li>Fixed issue with reporter failing to initialize by @jgebal in #1354</li> <li>Fixed issue with duplicate sources from dba_source by @jgebal in #1355</li> <li>Allow HTML coverage on FIPS-enabled DB by @jgebal in #1356</li> </ul> <p>Full Changelog: v3.2.01...v3.2.2</p> <p>Download utPLSQL release v3.2.2 here</p>"},{"location":"announcements/website-navigation-improvements.html","title":"Website navigation improvements","text":"<p>We've been busy improving the utPLSQL website experience over the past couple of days.</p>"},{"location":"announcements/website-navigation-improvements.html#shared-navigation-bar","title":"Shared navigation bar","text":"<p>The top navigation bar shared across all utPLSQL sites has been redesigned and refactored. It is now more consistent and makes it easier to navigate utPLSQL project and organization's pages.</p>"},{"location":"announcements/website-navigation-improvements.html#light-dark-auto-theme-switching","title":"Light / Dark / Auto theme switching","text":"<p>The theme toggle has been upgraded from a simple light/dark switch to a three-way control:</p> <ul> <li>Light \u2014 always light</li> <li>Dark \u2014 always dark</li> <li>Auto \u2014 follows your system preference</li> </ul> <p>Your choice is remembered across visits.</p>"},{"location":"announcements/website-navigation-improvements.html#announcements-reorganized","title":"Announcements reorganized","text":"<p>The Announcements are now presented in a blog-like style with categories section expanded by default, making it easier to find relevant announcements at a glance. The archive by year has been removed in favour of a cleaner post listing on the index page.</p> <p>We hope these improvements make the site more pleasant to use. Feel free to share feedback in the GitHub Discussions.</p>"},{"location":"announcements/utplsql-for-sql-developer-v200-and-v201.html","title":"utPLSQL for SQL Developer v2.0.0 and v2.0.1","text":"<p>This is a maintenance release all dependencies and changes by @PhilippSalvisberg</p>"},{"location":"announcements/utplsql-for-sql-developer-v200-and-v201.html#whats-changed","title":"What's Changed","text":"<ul> <li>Enforces SQL Developer version 24.3.1.347.1826 with JDK 17 </li> <li>Bumps all dependencies</li> </ul> <p>Full Changelog: v1.4.1...v2.0.1</p> <p>Download utPLSQL for SQL Developer v2.0.1 here</p>"},{"location":"announcements/utplsql-v323-released.html","title":"utPLSQL v3.2.3 released","text":""},{"location":"announcements/utplsql-v323-released.html#whats-changed","title":"What's Changed","text":"<ul> <li>Fix issue with <code>UT_TAP_REPORTER</code> on Oracle 23.26 by @jgebal in #1359</li> <li>Fixed support for camelCase in context <code>--%name</code> annotation. by @jgebal in #1361</li> <li>utPLSQL can be installed in editioned schema. by @jgebal in #1362</li> <li>Removed coveralls reporter by @jgebal in #1363</li> <li>Clarify behavior of before/after procedures in suitepath by @jgebal in #1364</li> <li><code>throws</code> can reference exception without schema or package name by @jgebal in #1365</li> <li><code>throws</code> works with uninitialized exception variables by @jgebal in #1366</li> </ul> <p>Full Changelog: v3.2.2...v.3.2.3</p> <p>Download utPLSQL release v3.2.3 here</p>"},{"location":"announcements/next-chapter-for-utplsql.html","title":"Next chapter for utPLSQL","text":""},{"location":"announcements/next-chapter-for-utplsql.html#looking-back","title":"Looking back","text":"<p>utPLSQL v3 has come a long way since it was first released in 2017. It has already been over 10 years since the first discussions about starting the project began. However, development slowed after 2019, and by 2024 the project had become inactive. Life took me in a different direction for a few years, and the after-hours project understandably took a back seat.</p>"},{"location":"announcements/next-chapter-for-utplsql.html#the-current-state","title":"The current state","text":"<p>In the last year, a few people reached out to me asking whether the project is still alive. Regulated companies often can't use software that isn't under active maintenance, and others simply treat it as a security risk.</p> <p>In recent months I have invested time in bringing the project back to life, refreshing all libraries and dependencies, fixing build processes and pipelines, and releasing new versions for the main project and tools. The documentation was restructured and updated, and discussions were moved to GitHub.</p>"},{"location":"announcements/next-chapter-for-utplsql.html#the-future-roadmap","title":"The future roadmap","text":"<p>I realized that utPLSQL needs a clear vision for its future development. Without one, it risks becoming legacy and dying, like many other open-source projects have.</p> <p>The software world keeps moving forward. New versions of Oracle Database, programming languages, developer tools and libraries are released continuously.</p> <p>At the same time, there are many ideas and plans that were never implemented as part of the development of utPLSQL v3. Those are still very much valid and would be highly valuable additions to the framework. They would make PL/SQL development and testing even more modern and smoother.</p> <p>I have created a high-level roadmap that highlights the key points of the future development of utPLSQL core.</p>"},{"location":"announcements/next-chapter-for-utplsql.html#phase-1-core","title":"Phase 1 - Core","text":"<ul> <li>Security model rework: CBAC for framework internals</li> <li>Drop legacy version support (11g, 12c, 18c)</li> <li>Annotations, suite structure & module rework</li> </ul>"},{"location":"announcements/next-chapter-for-utplsql.html#phase-2-modernization","title":"Phase 2 - Modernization","text":"<ul> <li>Code coverage rework</li> <li>Reporter API & assertion output improvements</li> <li>Modern database capabilities (data types)</li> </ul>"},{"location":"announcements/next-chapter-for-utplsql.html#phase-3-developer-experience","title":"Phase 3 - Developer experience","text":"<ul> <li>Framework usage - telemetry</li> <li>Developer/tester productivity (data setup, mocking, scope narrowing)</li> </ul>"},{"location":"announcements/next-chapter-for-utplsql.html#phase-4-new-capability","title":"Phase 4 - New capability","text":"<ul> <li>cucumber-utPLSQL: Gherkin BDD/ATDD test runner for PL/SQL</li> </ul> <p>The detailed roadmap is available in the utPLSQL org GitHub Discussions.</p>"},{"location":"announcements/next-chapter-for-utplsql.html#sustainability","title":"Sustainability","text":"<p>The intention is to keep utPLSQL under active development and create possibilities for companies and individuals to get direct access to the development team, with options for knowledge sharing, consultations, and more.</p> <p>Working on the above requires significant investment of thought, time and effort. It is not sustainable to keep developing utPLSQL without support from those who use it and benefit from it daily.</p> <p>Over the last decade, this project has been a significant part of my life as an engineer and professional software developer. I would like to see it thrive rather than fade into deprecation and obscurity.</p>"},{"location":"announcements/next-chapter-for-utplsql.html#sponsorship","title":"Sponsorship","text":"<p>I am currently working on opening utPLSQL for sponsorship, and I'll share the tiers and details in a follow-up post once everything is in place. </p> <p>If you or your company would benefit from active development of utPLSQL and want to be notified when sponsorship opens then please:</p> <ul> <li>comment on this GitHub discussion</li> <li>or contact me directly on LinkedIn X, BlueSky</li> <li>or contact utPLSQL.org on LinkedIn, X, BlueSky</li> </ul> <p>Your responses will help me gauge interest as I finalize the preparations. </p> <p>Jacek Gebal @utPLSQL</p>"},{"location":"announcements/category/news.html","title":"news","text":""},{"location":"announcements/category/releases.html","title":"releases","text":""},{"location":"announcements/category/utplsql-core.html","title":"utplsql-core","text":""},{"location":"announcements/category/utplsql-sql-developer.html","title":"utplsql-sql-developer","text":""},{"location":"announcements/category/website.html","title":"website","text":""},{"location":"announcements/category/utplsql-cli.html","title":"utplsql-cli","text":""},{"location":"announcements/category/utplsql-maven-plugin.html","title":"utplsql-maven-plugin","text":""},{"location":"announcements/category/utplsql-plsql-developer-plugins.html","title":"utplsql-plsql-developer-plugins","text":""},{"location":"announcements/category/utplsql-java-api.html","title":"utplsql-java-api","text":""},{"location":"announcements/category/tips-n-tricks.html","title":"tips-n-tricks","text":""},{"location":"announcements/category/version2-moving.html","title":"version2-moving","text":""},{"location":"announcements/page/2/index.html","title":"Announcements","text":""},{"location":"announcements/page/3/index.html","title":"Announcements","text":""},{"location":"announcements/page/4/index.html","title":"Announcements","text":""},{"location":"announcements/page/5/index.html","title":"Announcements","text":""},{"location":"announcements/category/releases/page/2.html","title":"releases","text":""},{"location":"announcements/category/releases/page/3.html","title":"releases","text":""},{"location":"announcements/category/releases/page/4.html","title":"releases","text":""},{"location":"announcements/category/utplsql-core/page/2.html","title":"utplsql-core","text":""},{"location":"announcements/category/utplsql-core/page/3.html","title":"utplsql-core","text":""}]}