[ Home
| Getting Started
| Build Test Packages
| Examples
| User Guide
| Release Notes
| Document Map ]
< Previous Section: Configuring the File Reporter | Next Section: Document Map >
Release Notes
Known Issues
utPLSQL version 2.x
-
There is an issue surrounding the use of utPLSQL on Oracle 8.1.7 where
the tests use database links. This is because Oracle will consider
the transaction to be distributed and utPLSQL v2 uses autonomous transactions
while the tests are running. This situation causes ORA-00164 in 8.1.7
(and apparently should not have been allowed in 8.1.5 or 8.1.6 either). It
is possible to work around this problem by turning off autonomous transactions
, but this can cause other problems if the tests themselves have rollbacks
within them.
-
The utAssert.eqtable assertion program will not work with tables that
contain non-scalar datatypes, such as LOBs, XMLType, collections and so on.
Change History
utPLSQL version 2.3.1 (7th July 2016)
- Updated documentation to reference GitHub.
utPLSQL version 2.3.0 (8th February 2015)
utPLSQL version 2.2.3 (30th August 2014)
-
Bug 35: Fixed an issue with utAssert.eqQuery failing with long select statements.
-
Bug 39: Corrected a spelling mistake in the documentation.
utPLSQL version 2.2.2 (4th May 2014)
-
Bug 32: Fixed issue with "eqquery" failing if a statement contained "UNION ALL".
-
Bug 33: Fixed issue which meant tests ran in an undetermined order (they will now run in alphabetical order).
utPLSQL version 2.2.1 (6th April 2014)
-
Bug 29: Fixed issue with the Uninstall leaving two views behind.
-
Bug 38: Fixed issue which prevented building the documentation depending on the build environment.
-
Feature Request 6: Updated documentation and made it all valid XHTML.
utPLSQL version 2.2
-
This version introduces the concept of Output Reporters. The existing code to output to DBMS_OUPUT or to file has been refactored to
fit into this framework. As a result of this, the pl procedure in the utplsql package has been moved to the utreport package.
-
The installation procedure has been changed so that the database version is picked up more robustly. Version 2.2 works with 10g,
which previous versions did not. It should also work with future versions (so long as the version is to be found in the same place
in the data dictionary).
-
There are also a variety of small fixes in this release.
utPLSQL version 2.1.1
-
This version has a variety of small fixes and is released to coincide
with OUnit version 1.0.
-
The installation procedure has been changed and a variety of bugs with it have been fixed.
-
utGen.exe has been removed from the "core" utPLSQL distribution. The functionallity it supplied will be included in a future version of Ounit.
utPLSQL version 2.0.10.1
-
Allow user to specify (as part of their individual configuration) that they
only want to show failed tests, and then whether all information or just the
description (request from Heinz of UBS). Supersedes the
utresult.ignore_successes and utresult.include_successes (whose settings do not
persist across sessions).
-
Support for testing contents of REF CURSORs (cursor variables) has been added
(provided by Venky Mangapillai) with the eq_refc_table and eq_refc_query
assertion routines.
-
Adds testpkg_from_table to utgen to allow generation of a test package directly
from the new ut_grid table (provided by Patrick Barel). Patrick has also built
a Windows-based front end, utGen.exe, that allows us to populate this grid very
easily. Thanks, Patrick!
-
Add ut_outcome_seq sequence for ut_outcome table.
-
Add control_info and test_info columns to ut_outcome table.
-
Add ability to direct output from utPLSQL's test run (the test results) to a
file instead of to the screen. This functionality was provided by Rainer
Medert. The documentation for this feature has not yet been integrated into the
documentation set. You will find the "beta" documentation in the
file_output_spec.doc in the doc directory.
utPLSQL version 2.0.9.2
-
Surround AUTHID CURRENT_USER clause of utreceq.pks to allow for installation on
Oracle7 and Oracle8.
-
Add override_package_in argument to utPLSQL.test so that you can bypass the
standard ut_<package> naming conventions for testing. This is useful
when your package name's length is 28 or above. By passing in the override
package name, you can avoid the name limitation.
-
New assertion programs to validate DBMS_OUTPUT text that is generated from
within a program.
-
Add utplsql.run and utplsql.runsuite to run a named test package directly, and
not correlate it via the name of the program being tested.
utPLSQL version 2.0.9.1
-
Add ut_reqeq table and utreceq package to support the creation of "record
equal" functions (contributed by Dan Spencer).
-
Modify utPLSQL.test so that the record comparison functions are generated
and recompiled whenever the source code is recompiled.
Call utreceq.add to register a package-table combination.
-
Modified utpackage.id_from_name to take an owner_in parameter with a
NULL default value. v_owner is set to nvl(owner_in,user). added
owner = v_owner and suite_id is null to the WHERE clause.
-
Modified utpackage.add to add in a record with suite_id NULL if one
doesn't exist.
-
Modified utpackage.upd - changed parameter suite_in to suite_id_in (the
type was INTEGER). Changed the UPDATE WHERE clause first line
to NVL(suite_id,0) = NVL(suite_id_in,0).
-
Modified utplsql.testsuite - v_suite (the suite id) was in the
call to utplsql.test while the utplsql.test parameter list was expecting
the suite name. The results of a test run are now logged to the
appropriate record in ut_package [the record for the suite if run from
testsuite, the record with suite_id NULL if run via an EXEC UTPLSQL.TEST('packagename')].
-
Add objExists and objNotExists assertion programs
-
Changes to utPLSQL.test engine so that you can test programs define
in one schema from another schema.
-
Add previous_passed and previous_failed to utAssert and utAssert2
-
Set order in which test case results are displayed to the order in which
they are run by adding the tc_run_id to the utr_outcome table.
utPLSQL version 2.0.8.2
-
Change ut_utp LOB column to VARCHAR2 for the time being.
-
Fixed ALTER TABLE statement in ut_config.tab.
-
Change utplsql.test to allow for compilation of test package before
extracting list of test procedures from that package (avoids the "
Warning...no tests were identified for execution!" message).
-
Add utAssert2.eval generic comparison program, and also utAssert.eval,
with an overloading for just two values, to make it really easy to use.
-
Add utGen.receq_package procedure. It currently ONLY writes the code
out to the screen via DBMS_OUTPUT.PUT_LINE. It does not, in other words,
support the multiple outputs of utGen.testpkg.
-
Update the utplsql_install.sql script to recognize Oracle9.0 and Oracle9.1
versions and install all 8i features for those versions (there is nothing
specific to 9i at this time).
utPLSQL version 2.0.8.1
-
Fixes to a number of minor installation errors.
-
Offers option in utPLSQL.test to request that setup and teardown is
executed with each test procedure and not the test package level.
Implements a new features in utPLSQL.test that allows you to specify
that you want to run the setup and teardown procedures before and after
EACH unit test procedure, as opposed to running them once for the unit
test package as a whole. To utilize this feature, simply pass a value
of TRUE to the new per_method_setup_in parameter of utPLSQL.test as
shown below:
SQL> exec utplsql.test ('str', per_method_setup_in => true)
utPLSQL version 2.0.7
-
Revamp utAssert2.define_message implement to simplify creation of new assertion
programs
-
Modify implementation if ieqminus to avoid duplicate column
-
Change naming conventions for utPLSQL2 from prefix to delimiter driven
(utconfig.delimiter):QU##NNN. This affects only those test packages
which use the utPLSQL2.test program to run the tests (ie for version 1
utPLSQL test packages and utPLSQL.test, you can still use your prefix-based approaches).
-
Add utAssert2.fileExists
-
Compile utAssert2 with AUTHID CURRENT_USER for Oracle8i and above.
-
(2.0.7.2) Fix index creation for ut_assertion table.
-
(2.0.7.2) Fix foreign key definition in ut_argument.
-
(2.0.7.2) Fix foreign key definition in uta_eq.
utPLSQL version 2.0.6
-
Fix to utgen.pkb to allow generation of procedure bodies when no grid is used.
-
Allow developers to turn off display of successful results (utResult.include_successes)
utPLSQL version 2.0.5
-
Allow user to specify individual program or programs (via wildcard) to be tested
from a whole package.
-
Add ut_deterministic and ut_deterministic_arg tables to facilitate generate of
test packages for deterministic functions.
-
Add ut_deterministic.fmx Oracle Forms GUI to allow easy generation of test packages
for deterministic functions.
utPLSQL version 2.0.4
-
Implement test suite execution in utPLSQL2.
-
Implement ut_suite_utp table (and the corresponding utsuiteutp package) as an intersection
of ut_suite and ut_utp, defining all those UTPs in a given suite.
-
Improved error handling with utrerror assertions and general reporting mechanisms.
Assertion and error handling logic applied to define-time packages like utsuite
and utsuiteutp.
-
Revamp installation process; no longer use OraShare, remove testcase2 entirely.
-
Create stand alone utverify procedure.
utPLSQL version 2.0.3
-
Add utr_error table and utrerror package; now all errors are logged to the table
for viewing afterwards. utPLSQL NEVER passes back an unhandled exception
to the console.
-
utAssert.eqfile now flags problems when opening files.
utPLSQL version 2.0.2
-
Clarify how that null_ok_in is supposed to work. For utAssert.this, it should
mean that if the value of the Boolean expression coming in is null, then
that means "success". For eq, it shoudl mean that if BOTH values coming in
are NULL, that is "success". For eqfile, if both files are empty...etc.
-
Add null_ok_in to eqqueryvalue assertions.
-
Add utassert.eqqueryvalue for NUMBER
-
Enhance utgen to properly generate code for overloaded programs in packages
utPLSQL version 2.0.1
-
Store results in utr_outcome tables
-
Support results reporting compatibility with V1
-
Display results of all test, success and failure.
utPLSQL version 1.5.6
-
New version of documentation courtesy of Chris Rimmer. Thanks, Chris!
-
utAssert fix in eqcoll to check for both values being null.
-
Enhancements to utGen to generate more self-explanatory code; comments
are now inserted to show the different sections in a standard test case
sequence.
-
Revamped installation procedure based on OraShare utility.
-
Add utGen.testpkg overloadings and new programs to support passing of
argument grids via collection, file or string (this feature is currently
undocumented outside of the release notes).
utPLSQL version 1.5.5
Bug Fixes
-
Change calls from DBMS_OUTPUT.PUT_LINE to utPLSQL.pl to avoid output
errors.
-
Avoid use of DBMS_SQL to obtain sequence values for Oracle7 and Oracle8
installations of utPLSQL.
Enhancements
-
Addition of utConfig package (created and integrated by Chris Rimmer)
to isolate all tester configuration information.
utPLSQL version 1.5.4
Bug Fixes
-
utPLSQL.setconfig now sets the user information properly when
the package is first initialized (bug introduced in 1.5.3).
utPLSQL version 1.5.3
Documentation and Usage Changes
Bug Fixes
-
Auto-registration (using the ALL_ARGUMENTS data dictionary view) now
correctly ignores the setup and teardown procedures.
Enhancements
-
If no tests are run for the specified program, then a warning is displayed,
after which the SUCCESS message is displayed.
utPLSQL version 1.5.2
Bug Fixes
-
Fix setting of default prefix value in utPLSQL.pkb.
-
If you request execution of a test suite that does not exist, that failure
will be reported.
-
If you request execution of a test for a program or package that does
not exist, that failure will be reported.
-
Unique index on ut_package changed to allow multiple entries for same
package, in different suites.
Known Problems
-
When running a suite of test packages, the SUCCESS and FAILURE headers
will display for each package, and not for the overall suite.
Enhancements
-
The utAssert package now offers isnull and isnotnull assertions overloaded
for Boolean values.
utPLSQL version 1.5.1
Support for Oracle7.3, Oracle8 and Oracle8i
utPLSQL can now be used on any version of Oracle from 7.3.4 and above! The
installation script automatically detects your Oracle RDBMS version and adjusts
the code accordingly (Using a great SQL*Plus trick, courtesy of Vladimir
Trusevich; check out the references to &start81 and &start73 in the
source code, as well as the queries in code.sql, to get a sense of how we
can maintain a single base of code for all these versions!).
There are some differences in how the code works:
-
In Oracle8i, the autonomous transaction feature is used to immediately
COMMIT any changes to underlying utPLSQL tables (such as defining a
test suite). In earlier versions, no COMMITs are performed by utPLSQL.
In Oracle8i, the Invoker Rights model is used to allow all of utPLSQL code
to run under the authority of the invoker, not the owner/definer. In earlier
versions, the Definer Rights model is followed. So if you define utPLSQL
in a central schema and then share it with others via GRANTs and synonyms,
you may need to grant additional authority to the utPLSQL schema.
Stores Additional Configuration Information
When you set the directory for your test code (through a call to
utPLSQL.setdir
, utPLSQL.test or utPLSQL.testsuite), that value is stored in the uPLSQL
configuration table (ut_config). It will be used for current and future sessions
as the default, until you change it.
The prefix you specify in calls to utPLSQL.setprefix
, utPLSQL.test or utPLSQL.testsuite will also be saved in the uPLSQL configuration
table. It will be used for current and future sessions as the default, until
you change it.
Shows All Configuration Information
Call the utPLSQL.showconfig
procedure to display all of the stored configuration values for the specified
schema.
utPLSQL version 1.4.1
Automatic Test Registration
You no longer have to manually register
your unit test procedures
in the setup procedure. Instead, utPLSQL will (in default mode) read and
execute the list of public procedures and functions from the ALL_ARGUMENTS
data dictionary view that conform to utPLSQL naming conventions. This enhancement
makes utPLSQL much easier and simpler to use than before. Simply use the
designated prefix (default being "ut_") on your program names, and they will
be executed.
Improved error handling and reporting
Rather than display a small, easily missed test result, as in :
SUCCESS: PLVstr
utPLSQL now displays a much more noticeable (though still lacking in
colors, as in red for failure and green for success) display of the "big
picture", as in:
SQL> exec utplsql.test ('str', dir_in=>'e:\openoracle\utplsql\utinstall\examples')
.
> SSSS U U CCC CCC EEEEEEE SSSS SSSS
> S S U U C C C C E S S S S
> S U U C C C C E S S
> S U U C C E S S
> SSSS U U C C EEEE SSSS SSSS
> S U U C C E S S
> S U U C C C C E S S
> S S U U C C C C E S S S S
> SSSS UUU CCC CCC EEEEEEE SSSS SSSS
.
SUCCESS: "str"
utPLSQL version 1.3.2
Improved Statistics Recording
utPLSQL will now record the status of the last test run in the ut_package
and ut_suite tables. It also correctly updates those tables with a count
of executions and failures. Finally, it is no longer necessary to define
your package in and run it from a test suite for results to be recorded.
New Assertions and Assertion Features
utAssert now offers assertion routines that allow you to easily validate
the contents of PL/SQL collections (index-by tables, nested tables and varying
arrays) by running either the utassert.eqcoll
or utassert.ecollAPI
assertions.
You can also now request that utAssert show the
results of a test immediately
after execution. This allows you to build small test scripts without have
to create a test package and run it through the utPLSQL test engine.
Bug Fixes
Generally, error handling is now improved, particularly for compile errors
on test packages and modifications to underlying tables, such as ut_package.
When a test has been completed, utPLSQL clears out the results information.
< Previous Section: Configuring the File Reporter | Next Section: Document Map >
Copyright © 2000-2005, 2014-2016 Steven Feuerstein, Chris Rimmer, Patrick Barel and the utPLSQL Project. All rights reserved