Hi,
Now that the continuous integration build is using the cool ZeroConf infrastructure, we needed a clean way to run all tests from Moose based on the information gathered from the ConfigurationOfMoose. More precisely we want to run all the tests from all packages that are in the 'Tests' group from all configurations referred from ConfigurationOfMoose (including itself) :).
It's sounds more complicated than it actually is: packages | packages | packages := Set new. (self mooseDevelopmentVersion packagesForSpecNamed: 'Tests') do: [ :spec | packages add: spec name ]. self mooseDevelopmentVersion projects do: [ :each | (each version packagesForSpecNamed: 'Tests') do: [ :spec | packages add: spec name ] ]. ^ packages
We used to have this logic in an .st file that was ran through the builder from Lukas.
But, now, I simply created the MooseTestRunnerCommandLineHandler as a subclass of TestRunnerCommandLineHandler, and provided the new packages. I gave it the commandName of 'moosetest' and now I can simply call from the command line:
Pharo ./Moose-latest-dev-4.8.image moosetest
In Moose, we have a little package named: Moose-Development-Tools that is loaded by the configuration. I added the new class to it, and I can easily integrate the whole test running in the ci job after loading the configuration.
I'd say it's pretty neat.
Cheers, Doru
p.s. The VM still crashes when running the tests though (at least on Mac)
-- www.tudorgirba.com
"Beauty is where we see it."