Sample Output

This is typical output from SelfEsteem. Go ahead, expand the stories to see the passing and failing tests for each.

To create output like this, SelfEsteem reads a file that defines the stories and which iterations they belong to. That file looks like :

Iteration 4
-Story RecordAtAnyPoint
-Story MarathonWebsite
-Story DisplayNewOpenSaveFile

Iteration 5
-Story MeaningfulStackTraces
-Story LineHighlightingOnPlayRecord
-Story RecommendSyntax
-Story CoalesceEvents

It then merges this file with the standard junit build results that ant generates to produce an html file that looks something like this :

<applet archive='selfesteem-applet.jar'
        code='net.sourceforge.selfesteem.applet.SelfEsteem'
        width='700'
        height='350'
        lines='23'
        line1='Acceptance Tests : 9 of 13 stories complete - 2 of 7 tests passing - 69%'
        line2='-Iteration 4 - (2 / 3 stories passed - 66%)'
        line3='--Story RecordAtAnyPoint - (1 / 1 tests passed - 100%)'
        line4='---Passing Tests'
        line5='----RecordAtAnyPointpoint'
        line6='--Story MarathonWebsite - (0 / 0 tests passed - 100%)'
        line7='--Story DisplayNewOpenSaveFile - (1 / 2 tests passed - 50%)'
        line8='---Passing Tests'
        line9='----OpenSavetest'
        line10='---Failing Tests'
        line11='----NewFileTest'
        line12='-Iteration 5 - (1 / 4 stories passed - 25%)'
        line13='--Story MeaningfulStackTraces - (0 / 1 tests passed - 0%)'
        line14='---Failing Tests'
        line15='----CheckStackTraceTest'
        line16='--Story LineHighlightingOnPlayRecord - (0 / 2 tests passed - 0%)'
        line17='---Failing Tests'
        line18='----lineHighlightedOnPlay'
        line19='----lineHightlightStaysAfterError'
        line20='--Story RecommendSyntax - (0 / 0 tests passed - 100%)'
        line21='--Story CoalesceEvents - (0 / 1 tests passed - 0%)'
        line22='---Failing Tests'
        line23='----clickAndSelectCoalesce'>
</applet>
            

This html file then gets rendered by the selfesteem-applet.jar into our example above.

On a real project

Marathon is a GUI Test Acceptance Test Framework. It has a gui, so go figure, it uses itself to write acceptance tests for itself. It uses selfesteem to report about those tests.