Release notes 1.0.0

Release notes 1.0.0

10 October 2010

Description

This is the first external release of the GINT framework. GINT has been under development in its current form since 2009 based on earlier related works supporting the testing needs for various open source projects by the author. Projects include tools and plugins for Atlassian products.

Highlights

Development Productivity

Integration testing can be time consuming, difficult, and complex. GINT reduces the time and difficulty of writing testcases while helping to manage the complexity.

  1. Declarative style for defining testcases - a testcase is a key-value map declared in groovy code, a CSV file, or a database table. Minimal programming skill is required for testcase definitions.
  2. Groovy scripting - more complex tests may require some level of scripting and Groovy is a powerful and compact scripting language. Groovy also has a short learning curve.
  3. Command line based - the quickest way to run and debug tests. Run last failed, individual testcases, groups of testcases, or all. Easy to provide parameters.
  4. Parameters - the ability to easily provide control and testcase specific parameters to minimize duplication and maximize re-use. More ...
  5. Automatic comparisons - text or regex based comparisons on result data to determine success or failure of testcase. /wiki/spaces/GINT2/pages/116588607.
  6. Subsets - the ability to subset testcases for a test run. Subsets for specific environments (like Windows, Linux, etc...), code versions, or turn around requirements (short verses long running tests). Another example - testcase can be marked as deferred waiting for a fix. This behavior can be controlled statically (declared) or dynamically (determined by script logic).
  7. setUp and tearDown support.

Example script

includeTool << org.swift.tools.Gint  // test framework

gint.initialize(this) // required

gint.add([name: 'simple1', inline: { assert 1 == 1 } ])

gint.finalizeTest() // final preparations for running tests

Example run

gant -f simple.gant

 = = = = = = = = = =  simple started at Tue Aug 24 21:26:13 CDT 2010  = = = = = = = = = =

    [start] simple1
   [ending] simple1
 [complete] simple1 - 0.022 secs


     [info] Successful testcases  . . . . . . . . . . : 1    <<< TEST SUCCESSFUL
     [info] Total testcases . . . . . . . . . . . . . : 1
     [info] Elapsed run time  . . . . . . . . . . . . : 1.027 secs

 = = = = = = = = = =  simple completed at Tue Aug 24 21:26:14 CDT 2010  = = = = = = = = = =

BUILD SUCCESSFUL
Total time: 2.51 seconds

Testcases should be easy to declare and self documenting. Often, simple extensions to GINT make it possible to support different use cases and test requirements while maintaining this simplicity. There are a number of ways GINT supports extensions and customization.

  1. Extension points or exits

    1. Command generators

    2. setAddClosure

    3. setCmdLogClosure

    4. testcase specific resultClosure, successClosure, and finalClosure extensions

  2. Included extensions supporting testing of:

  3. Dynamic Groovy makes it possible to override or change specific GINT behavior with minimal coding.

  4. Extend GINT source code

    • Open source

    • Minimal development dependencies

    • Includes a set of GINT based integration tests

    • Development tested on Windows, Linux, and Mac



GINT is tested on the following client platforms:

  • Mac 10.6.4

  • Windows 7 and Windows Vista

  • Linux Ubuntu 9


© 2005 -2024 gint.org