Why have we three releases in a ten days?
Versions 22.214.171.124 and 126.96.36.199 suffered from severe bugs. To be concrete and transparent 188.8.131.52 was more or less a copy of version 1.8: new features were missing. It was a problem of copy/paste on the build server.
In order to fix this, I've created a version 184.108.40.206 Unfortunately, this version had an important and unexpected breaking change in the config file due to a change in a namespace. It was not intended to create this breaking change and I needed to rollback it.
The new version 220.127.116.11, released 2015-02-12, is a fix for these two issues.
I'm sorry for the inconvenient and will try to adapt the process for next releases.
The release 1.9 includes improvements in different major areas: result-sets assertions, ETL features, genbiL capabilities and test-suite configuration. This release also includes a few bug fixes.
Please report all the bugs to the issues tracker
to ensure they are fixed ... even if they are just minor issues.
What's new ?
- ETL: Added support for
- A timeout different than thirty seconds: previously the timeout for packages running in the SSISDB Catalog had a fixed timeout set to thirty seconds. It's now possible to override this setting.
- Support of project's parameter: Previously only package's paremeters were overridable by NBi, now you can also override the project's parameters.
- Support of variables: For projects not running in the SSISDB Catalog, you can now override variables. It's done exactly the same way than parameters.
- Test the count of rows in the query's result: This assertion counts rows of a result-set and compares it to an expectation. The possible comparisons are equal, more-than and less-than.
- Improvements for genbiL: I've added a new set of available actions for genbiL (but not available in the UI of Genbi). This new set of features is an evolution and offers new opportunities to automate the process of test-suite generation.
- Move Column (case): Now, you can directly move a column to the first or last position.
- Remove Column (case): Now, you can remove more than one column in just one sentence.
- Hold Column (case): Just the opposite of Remove Column (case). In place of listing the columns to remove, you specify the column that you want to hold.
- Filter (case): Now, you can filter on column withoutvalues (none) or with empty values (empty).
- Cross (case): If you want to cross a set with another with a unique column, you can do this second set directly from the cross sentence.
- Replace (case): Ideal if you want to replace values in a column. Eventually youcan add a condition that will be checked for each line to decide if you replace the value or not.
- Substitute (case): At the opposite of Replace (case), just replace a substring of the values by another one.
- Concatenate (case): Concatenate the values of two columns into a third.
- Include (suite): Offers the opportunity to add a test directly defined in an external file.
- Define failure's report profile: You can customize the count of items (rows) displayed in the report of failure.
- Defaults and references reports settings: You can create a setting to avoid repetition of attributes path and source in each element report.
- I'll be presenting a session about Test Automation with NBi at the SQL Konferenz 2015 - February 4th.
- When a bug is fixed or a feature is ready, I try to put a link to a nightly-build on appVeyor. If this fix/feature is important for you, you can download the build and use it.
- I've a bit delayed the posts about genbiL on the blog. It's mainly due to the new features added to genbiL, during this release. You can decrease by 33% the count of lines needed. Follow this on my blog
What's next ?
Main ideas for release 1.10 (and next)
- Create fakes or stubs of views, stored procedures or functions during the setup of a test and remove them during the cleanup. (Work already started)
- Offer the opportunity to surround the test with a transaction and rollback the transaction when the test has been executed.
- Support testing of structure for database
- Execute tests with etls running on a remote server.
- Add a setup command to process parts of a cube (SSAS).
- Support some tests about result-sets, to express easily conditions such has "If this field is greater than X then this other field must be greater than Y".
- Support tests on the xml of a report (SSRS).
- Support transformation of the result-set in the assert (XPath, Xslt, move columns, remove columns, add columns).
I'm (still) working on a Release 2.0. This work is delayed to the lack of releases for NUnit 3.0 (and changes in the API). Anyway the goals are still:
- Lot of internal refactoring meaning easier to integrate new features (mostly done)
- Compatible with NUnit 3.0 meaning easier to setup a test suite !
- Easier to port it to another test framework than NUnit (xUnit, Fixie, ...)
- Easier to write helpers to compare result-sets
- Easier to create a Visual Studio Add-in
Naturally this Release 2.0 has a big constraint linked to the availability of NUnit 3.0 (currently still not available) so no planned date for the moment.