How to debug the examples command line runner in image

When we get errors running all tests in headless mode it can be helpful to reproduce the issue in an image with a gui.

The first step is to try to reproduce the issue locally in headless mode by running only a subset of the tests, in the example below the ones in the package GToolkit-World.

We can then simulate the same run in an image with a GUI:

commandLine := CommandLineArguments withArguments: #(
	'--junit-xml-output' '--verbose' 'GToolkit-World' '--no-quit' ).
  
GtExamplesCommandLineHandler activateWith:  commandLine
  

Instead of of using CommandLineHandler>>#activateWith: activateWith: aCommandLine ^ self new commandLine: (self prepareSubcommand: aCommandLine); activate we can also bypass most logic done by the handler and directly execute examples:

handler := GtExamplesCommandLineHandler new 
	commandLine: commandLine.
packages := handler sortedPackageNamesToRun.
examplesReportResult := handler basicRunExamplesInPackages: packages
  

We also do not need to use GtExamplesCommandLineHandler CommandLineHandler subclass: #GtExamplesCommandLineHandler instanceVariableNames: '' classVariableNames: '' package: 'GToolkit-Examples-Testing' . Instead we could directly use the example reporter GtExamplesHudsonReport GtExamplesTestingHudsonReport subclass: #GtExamplesHudsonReport instanceVariableNames: '' classVariableNames: '' package: 'GToolkit-Examples-Testing' (this will also be called by the command line handler)

GtExamplesHudsonReport runPackage:  'GToolkit-World' asPackage
  
GtExamplesHudsonReport runClass:  GtWorldByScripterExamples
  

Or we can run a single test.

GtExamplesHudsonReport new 
	initializeWithTestCases: {(GtWorldByScripterExamples>>#doesNotUnderstandDebugSession) gtExample};
	reportName: GtWorldByScripterExamples package name, '-', GtWorldByScripterExamples name;
	run