it:ad:tsqlt:home

IT:AD:TSQLt

Summary

The open source automated unit testing framework for testing Sql Server based deliverables.

Red Gate's has created a UI for it IT:AD:SQL Test, but it's not necessary (making it relatively use within a continuous build environment.

  • Advantages:
    • Can be used to quantitively measure and report Data Development, Data Migration and Data Quality activity progress.
    • Lives in it's own schema, separate from the application's schema(s).
      • Does not change the database – all tests are run as transactions and rolled back rather than committed.
      • Can mock tables and stored procs (that's really useful!)
      • Can output TXT or XML – making it easier to integrate with a continuous integration tool
      • Can be run by a support DBA without the need for a IT:AD:Visual Studio license. In Enterprises with over a certain number of employees, even the free version of IT:AD:Visual Studio has a cost.
      • Can be run on a build server without requiring a license.
      • Is Open source and does not run the risk of being removed from Visual Studio at some future date, putting at risk all testing efforts developed with it over the years.

      * Considerations:

    • Installation requires CLR to be enabled.
    • Can be used to test IT:AD:SSIS operations.
    • May be of limited to no use with testing IT:AD:Code First development.
    • It's more work (but all Unit Tests add some work, for large development, maintenance and ongoing development gains).
    • Allows for introducing a IT/AD/Test Driven Development (TDD) based approach to database development.
  • Disadvantages:
    • Developers are used to IT:AD:Visual Studio, and average enterprise developers may resist developing tests in a different way. Quality developers embrace any tool that has low friction to delivering value.
    • DBAs may not be used to producing reports that quantitatively measure how much progress has been made.
    • The output report has to be formatted before it can be presented to stakeholders.