(v2) Version 2

Enhancements

  • One of the main changes in this release is the test case status. When a test case is executing, the test passes across different states. In previous version, there were only three final states, but it did not take into account when the before or beforeAll cases were not correctly executed. In previous versions, the test cases were executed anyways. In this release the tests are not executed if the procedure do not finish correctly. In the case a test case is not executed, the final state is unexecuted. There are another states for the test cases. For more information, visit the architecture section.
  • XML assertions (Developed by Robert Mala @dibdotdob).
  • The framework is a TAP Producer by generating an TAP v13 output.
  • The project has two public branches: master and develop. In the master branch, the most recent stable release is available. In the new develop branch, the new developments are added here, and the branch could not be stable. This allows to have a stable branch ready to clone.
  • The integration test with Travis-CI uses Db2 v11.1 Mod 4 FP 5.

Documentation

  • The API includes the documentation for the new XML assertions. Also, the API includes the new administrative procedures including TAP report.
  • There is a new diagram that explain how a tests suite change its state.
  • With the inclusion of test case states, there is a diagram that explain the transitions.
  • The ER diagrams were updated with the new table for test results and new fields.
  • The example provided reflects the new features.
  • There is a page for the different types of reports: TAP and XML.
  • The project has a logo, a mascot, which is a Danta (Tapir). There is a section dedicated to explain the reason of this wonderful animal as logo.
  • The project has a new home page with the same structure as jUnit: https://angoca.github.io/db2unit/

(v1) Version 1

These are the features that have been changed or added for the first stable release

Enhancements

  • The installation can be done by a normal user or a privileged user. The DDLs were separated into different files in order to separate the duties (DBA objects, user objects). The corresponding process was described in the wiki (Issue #61)
  • Now it is possible to register a suite in the framework. It allows you to execute all related suites once they have been registered. It is not necessary to execute them in order to register them.
  • Register tests suite does not fail if it has previously registered (Issue #57)
  • The configuration for Travis-CI was improved. Now, it configures the virtual machine in parallel, the DB2 installer is downloaded with multiple connections. It also uses DB2 v10.5 FP 4 Cancun Release with just the necessary libraries to install (Issue #62)
  • The installer shows an error that directs to the Wiki when an error appears (Issue #46).
  • The DB2 environment is reestablished after installation - CURRENT SCHEMA, CURRENT PATH (Issue #63).
  • It is possible to export to a file the list of registered suites with tests sorted randomly (Issue #60).
  • The test fixture that is represented by a stored procedure was renamed from PROC_NAME to TEST_NAME (Issue #76).
  • There is a new column that describes the tests (metadata). This is not currently used but it will be the base for many features in future versions (Issue #59).
  • Shell scripts for installation and tests were modified in order to support different scenarios. They were tested in different platforms, and minor bugs were corrected (Issue #77)
  • All db2unit locks in the database can be released at the same time.
  • The date of an execution of a tests suite is stored in the database.
  • The last execution id of the current session can be retrieved via a UDF.
  • Sources files were renamed in order to show the execution order when installing. This allows the users to understand how objects are created, and they can be executing without shell scripts, for example from Data Studio.
  • Carriage return was specified for specific Windows files different from Linux files.
  • Error codes returned by assertions were put into constants.
  • Handlers in SQL-PL use defined conditions instead of sqlstate.
  • ExecutionReports table is now a public alias.
  • Uninstall script now uses a dynamic schema which is not related to the current version.
  • Tests suite names were changed in order to use the shell scripts in the same way as log4db2 does.

Bugs

  • The assertion to check the content of two tables was finally corrected, it uses the MINUS operator to determine the differences (Issue #55).
  • The seed to generate the random execution Id is independent in each connection. This assure a different ExecId when there are parallel executions (Issue #46).
  • There was a bug when executing a single test after a complete tests suite (Issue #64).
  • Autonomous execution generated errors in some cases. Those errors are captured and logged as part of the execution report.

Documentation

  • The wiki was completely reviewed, including the "Install from sources" section (Issue #67).
  • There is a new section that describe how to insert a given order of tests in the database, in order to be reused (Issue #39).

Version 1 - Beta

These are the features added in this release.

  • The main feature in this release was the integration with Travis-CI. This is a free Continuous Integration server, and many of the new features are related in some way to this integration.
  • Set of assertions to test datetime (timestamp, date, time). More information in the API section.
  • New procedure to associate a message with a test, when the test does not have assertions. A typical case to test the correct execution. More information in the API section.
  • The procedure that are part of a suite were changed to follow the standard of a xUnit implementation.
  • Way to execute just one test from a suite. More information in the Usage section.
  • Execution of RUN_SUITE returns a code that eases the integration with external scripts. More information in the API section.
  • The results of the execution indicates the type of assertion performed. It could help to identify the origin of the error.
  • The name of the suite could be given not in the same case. Normally suite names are in capital (schema), but to run them, they can be specified in any case (if there are not collision name: two suites with the same name and different case). More information in Usage section. The same happens for the test name, when executing a specific test.
  • When no suite name is provided to the RUN_SUITE, the current schema is used as name. More information at Usage section.
  • There is a new script that executes several suites and returns the error code from the global execution. The user could use this script to develop its own external script that catches the error code from the RUN_SUITE procedure.
  • Way to reset the configuration, and start with empty table like after the installation. More information in the Usage section.
  • Switch between autonomous and non-autonomous is done with with one procedure.
  • A procedure to show the license was added.
  • More tables were added and relations between them were added. This ensures the relational integrity between tables.
  • The installer shows the database name and schema name at the end of the process.
  • The installer returns an error code at the end of the execution that indicates if the process was correct or there were problems.
  • The installer integrates the version of this framework as the last step in the installation process. This is useful to identify if the installation was success.
  • The installer cleans the environment (unset used variables).
  • Scripts are compatible with SH and not only with Bash.
  • Documentation about how to install this framework without the log4db2 dependency. It is necessary to install the mock procedures, but they do nothing. More information in Install section.
  • List of supported DB2 version where this framework has been tested. To see the list, check the Fun stuff section.
  • Graphical documentation was added in the Architecture section: A sequence diagram and an ER diagram.
  • A new section in the Wiki, where all links that talk about this project will be listed: Blogs, Tweets, Articles, Videos. Check the Media section.
  • Different bugs were fixed:
  • String too long (The problem was with an error message).
  • Single quotes not escaped (When dynamic execution).
  • Problem solved with schemas with less than 8 chars.
  • Message of locks were improved.

Version 1 - Alpha

This version contains the first set of features. For this reason this section is empty.