[ 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