I think the problem we are trying to solve is, "how do we run a bunch of 
integration test maven projects"

I'm still a little fuzzy on what's going on with the testsuite.  What I think 
is that in 2.1 we used the genesis maven-maven-plugin, and jason dillon worked 
on it some more and turned it into the codehaus shitty-maven-plugin which was 
used during 2.2 development.  It's much more sophisticated than the 
maven-maven-plugin so given a choice between the two I'd say we should use the 
shitty-maven-plugin. I don't think the shitty-maven-plugin is being very 
actively maintained.

I don't see much evidence that the shitty-maven-plugin is actually configured 
in 2.2 or trunk.  Maybe I didn't look in the right place.

There is a third choice that I don't think was available when 2.2 was started, 
the maven-invoker-plugin.  This is definitely supported and I think we should 
try to use it.

I wonder if we should divide the tests into two groups, those that test 
starting and stopping the server, and those that require a running server (and 
don't stop it).  While I think that the start-stop tests probably have to be 
run in order, I'd think that all the other test projects could probably be run 
in parallel. (a maven 3 feature).

thanks
david jencks

On May 11, 2010, at 9:49 PM, Forrest Xia wrote:

> Thank you, David, for sharing your thoughts here. See my response below.
> 
> On Wed, May 12, 2010 at 6:18 AM, David Jencks <david_jen...@yahoo.com> wrote:
> 
> On May 11, 2010, at 2:40 AM, Forrest Xia wrote:
> 
>> Hi,
>> 
>> I spent some time on reenabling G 2.2 branch testsuite to work. After 
>> comparing 2.2 branch with 2.1 branch, I would propose to revert back to the 
>> 2.1 configs, that is using maven-maven-plugin to run tests in child 
>> processes. The benefit is we can use testsuite as a unit to run children 
>> test cases while just start/stop geronimo server instance only one time, 
>> this will save time and disk space for testsuite execution.
> 
> Aren't there a bunch of command tests that check that the start/stop server 
> commands work?  How will this work with the single start stop?
> I might not make myself clear here. Here I say "testsuite as a unit to run 
> children test cases while just start/stop geronimo server instance only one 
> time" means that, for each testsuite, the server only needs to start/stop 
> once if using maven-maven-plugin to run tests in a children process. That is, 
> for the current set of testsuites, we only need to start/stop server nine 
> times, since we have nine testsuites.
> 
> 
> I would much rather move 2.2 towards what we're doing in trunk than revert 
> back to what is in 2.1 I think that since the failsafe plugin exists and we 
> know about it we should use it.  Using standard maven plugins is almost 
> always a better idea than trying to come up with something ourselves.
> Yes, using failsafe plugin to run integration test is the right thing to do. 
> Attached the updated poms I replace surefire with failsafe to run integration 
> test.
> 
> 
> The only objection I can think of to using failsafe is that the server will 
> be started and stopped too often.  
> Yes, as you pointed out, if we use the thing like gtrunk testsuite, it will 
> cause too many times start/stop of server instance. This not only cost too 
> much time, but also consume too much disk space. I did a calculation, the 
> gtrunk way will cost at least 4G disk space for each run of testsuite(because 
> it needs to expand a server assembly for each of test backets). If we ADD 
> using maven-maven-plugin, it will save three fourth of time and disk space.
>  
> I wonder if we could get around this by having a geronimo-maven-plugin mojo 
> that starts a server if one is not already running.  We'd put this in the 
> pre-integration-test phase of every it and put nothing in the 
> post-integration-test phase.  I think that, being in a child process, the 
> server would get killed when maven exits.  We could also turn off the server 
> in the testsuite pom post-integration-test phase.
> I think we could get around this by using maven-maven-plugin :-) 
> 
> I'm rather mystified as to what happened with the 2.2 testsuite.  I thought I 
> remembered it running when I released 2.2, although I always got failures on 
> my machine.  It is certainly not running now.  It looks like I updated a 
> comment to suggest running with -Pit,all-subprojects although this will not 
> start the server before executing the tests.
> 
> So, I'm against moving back to the 2.1 way of running the testsuite unless we 
> really can't get anything else to work. 
> Maybe I should not say "revert back", actually I think we should keep using 
> maven-maven-plugin because of the benefit it brings as stated above.
> 
> thanks
> david jencks
> 
> 
> Please help review the updated poms and let me know if it is OK for you.
> 
> Forrest
> <testsuite-2.2.1-SNAPSHOT.pom><commands-testsuite-2.2.1-SNAPSHOT.pom><deploy-2.2.1-SNAPSHOT.pom>

Reply via email to