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.
- 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.
- 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.
- 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.
- Parameters - the ability to easily provide control and testcase specific parameters to minimize duplication and maximize re-use. More ...
- Automatic comparisons - text or regex based comparisons on result data to determine success or failure of testcase. /wiki/spaces/GINT2/pages/116588607.
- 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).
- 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.
Extension points or exits
setAddClosure
setCmdLogClosure
testcase specific resultClosure, successClosure, and finalClosure extensions
Included extensions supporting testing of:
Shell (bat, bash, etc...) scripts
Java scripts - Command generator for JAVA
Groovy scripts - Command generator for GROOVY
Gant scripts - Command generator for GANT
Atlassian command line interface (CLI) testing - Command generator for Atlassian
Confluence command line interface (CLI) testing - Command generator for Confluence
Confluence macro testing. More ...
JIRA command line interface (CLI) testing - Command generator for Jira
Dynamic Groovy makes it possible to override or change specific GINT behavior with minimal coding.
Extend GINT source code
Minimal development dependencies
Includes a set of GINT based integration tests
Development tested on Windows, Linux, and Mac
GINT is Open Source
License is Apache License 2.0. More ...
Code contributions are welcome. More ...
Development version control uses Mercurial
GINT - BitBucket repository
JIRA is used for bugs, issues, improvement requests, and support requests
GINT is tested on the following client platforms:
Mac 10.6.4
Windows 7 and Windows Vista
Linux Ubuntu 9
