Want to use test automation with your Continuous Integration?

Jenkins is an open source continuous integration software and when installed on a build server can be configured to execute tests on new builds thus determining if the latest code change has created a problem within the application.
During this process Jenkins gets the latest code from source contro (GIT, SVN, CVS, Subversion, etc.) through either a push or pull (depending on configuration). It then builds the code, runs the automated unit, Selenium integration, and functional tests. Jenkins then produces an output report and can also be configured to perform other activities like send email or chat messages to notify of the build/test status thus completing the feedback loop.

Always consider the number of builds and test executions taking place in a single day. Depending on velocity it could mean one, two, or twenty. What could slow this process down is the type and number of tests. Historically we know unit tests execute quickly, most times within milliseconds and GUI tests tend to take longer. If there are a great number of GUI tests they could be optimized to execute quickly so as to not impede this process.

Headless scripts are GUI scripts that are executed without a browser opening on the desktop. The advantages are that the build machine doesn’t need to have browser installed on it and the speed in which the tests execute can be quicker. Using Selenium’s HTMlUnitDriver is just one way to make a headless script execute as the Selenium HTMLUnitDriver mimics a GUI browser. These modifications to the driver would only be beneficial in the build environment. It’s still best to use real browsers in other environments.