Integrated Fitnesse Testing on Jenkins Build Server

Automated Testing Tools are used to assure modifications are always backward compatible and safe for production
Forum rules
This forum is personally pruned to avoid redundant posts. Related topics are moved to the same sub-forum. Language will be corrected for readability.

Integrated Fitnesse Testing on Jenkins Build Server

Postby red1 » Fri Oct 14, 2011 7:30 pm

We have got Fitnesse testing integrated into a Jenkins Build Server contributed by BayCIX from Landshut, Germany. It can be viewed and run from http://fitnesse.idempiere.com.

jenkins.png
jenkins.png (113.54 KiB) Viewed 5261 times

The Jenkins server at http://jenkins.idempiere.com has a configuration to automatically take the Fitnesse module from ADempiere SourceForge.net's SVN/branches/fitnesse and copy it to the above location and then run it and place the results.xml in a specific location for easy access. Jenkins will run the tests each time the ADempiere361 experience a change in codebase.

The Fitnesse itself already has graphical display at a click under 'Test History'. The Fitnesse test suite itself is fully single based, meaning that all my tests i did before are now in a single folder and can be run either in a suite for all tests at one go or singularly one by one according to your selection.

fitnessesuite.png
fitnessesuite.png (140.2 KiB) Viewed 5256 times

The import and class-paths are also consolidated into the Frontpage header page.

Now you can either run this yourself by going to the link above or just access the results.xml when Jenkins runs it for us on regular or occasional whenever there is a change in the codebase. At the moment only the Adempiere Standard Testing and Pos Gui Testing is tested locally and activated for testing on the Jenkins. The rest are put on 'normal' mode until the modules such a Fixed Assets are properly integrated (some Romanian terms in the model).

Next on the roadmap will be to get the OSGi version of 361, which is iDempiere 1.0 pending to be tested with the same Fitnesse suite. This involves using fixtures that works within the OSGi container. After that it is the Web-based HTML or Ajax UI testing (using SAHI or ZTL(for ZK5)) and incorporate them into the Jenkins environment also.

I am now with Dominik of BayCIX in Landshut, 70km near Munich, Germany doing the Jenkins proofing together so i probably do the SAHI portion first as both that and the above suite is useful as a complete suite for both 361 and ADempiere 370 at SourceForge.net. I also will be studying another recent SAHI contribution from Michael McKay of Canada to see if they can work on this Jenkins.

At the Jenkins server, when you login as an Administrator and click on the 'FitnesseTests' row and then 'configure' you will see the following page:

build1.png
build1.png (106.32 KiB) Viewed 5256 times


The Repository URL is set to http://adempiere.svn.sourceforge.net/sv ... s/fitnesse where any change detected there (when i or someone else upload a new fixture or test script) it will fetch onto Jenkins.

build2.png
build2.png (42.78 KiB) Viewed 5256 times


The Fitnesse engine is already running in the Jenkins and will allow at that port 8070, which is conveniently set to http://fitnesse.idempiere.com.
red1
Site Admin
 
Posts: 2759
Joined: Tue Jul 06, 2004 3:01 pm
Location: Kuala Lumpur, Malaysia

Re: Integrated Fitnesse Testing on Jenkins Build Server

Postby red1 » Tue Oct 18, 2011 4:40 pm

Dominik Zajac wrote a technical guide on his end of setting up the jenkins build for Fitnesse testing above: http://www.banym.de/erp-2/adempiere/int ... mment-7939
red1
Site Admin
 
Posts: 2759
Joined: Tue Jul 06, 2004 3:01 pm
Location: Kuala Lumpur, Malaysia

Re: Integrated Fitnesse Testing on Jenkins Build Server

Postby red1 » Tue Oct 18, 2011 11:00 pm

Today Dominik and I configure the Jenkins for Fitnesse better by moving the DB Restore to its own project instance for more fine grain control, and discovered where the Fitnesse results can be shown.

JeninsF1.png
JeninsF1.png (65.76 KiB) Viewed 5227 times

It will just run the Fitnesse server on every commit onto Fitnesse code or scripts and output the results automatically.

JenkinsF2.png
JenkinsF2.png (78.8 KiB) Viewed 5227 times

The Post-Build setting allows that by checking the Fitnesse box and telling it where the results is stored.

JenkinsFitnesse1.png
JenkinsFitnesse1.png (169.73 KiB) Viewed 5227 times

When a change is detected (via minute basis) the Fitnesse job's green bulb will pulsate. Note the left bottom panel showing what it is doing. (These actions will be transferred to a dedicated DB job later as Fitnesse will just focus on running itself without changing the DB).

JeninsFitnesse0.png
JeninsFitnesse0.png (74.26 KiB) Viewed 5227 times

On clicking the job, it leads to the screen above that shows the last in Build HIstory. Once it is finished you can click on it and it gives an additional Fitnesse icon at the bottom.

JenkinsFitnesse2.png
JenkinsFitnesse2.png (96.56 KiB) Viewed 5227 times

Clicking on the Fitnesse FrontPage link produce its results xml in the format below.

JenkinsFitnesse3.png
JenkinsFitnesse3.png (151.81 KiB) Viewed 5227 times

As you can see it shows what went right or wrong within a single highly colored page for fast take. We shall make this test triggered automatically upon the other jobs such as ADempiereKenai361 and DB Restore. An email can be sent with these page to the developer making the commit that triggered the jobs.

What is left is to make the Fitnesse tests more correct (at the moment we have the Graphical X11 issue for the Jenkins to run) and its own sample data migration scripts where needed. In the long run, all sample has to be in the DB seed. In a perfect scenario, developers whose code is clean will get an email notifying them whether it is 'Successful' or 'Something did not work' from a functional perspective rather than just Java compiler basis only.
red1
Site Admin
 
Posts: 2759
Joined: Tue Jul 06, 2004 3:01 pm
Location: Kuala Lumpur, Malaysia


Return to Quality Assurance

Who is online

Users browsing this forum: No registered users and 2 guests