geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Re: Reenable testsuite in G 2.2 branch
Date Thu, 13 May 2010 06:28:35 GMT
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_jencks@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>


Mime
View raw message