geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Blevins <david.blev...@visi.com>
Subject Re: Info needed: migrating openejb-itests to testsuite framework
Date Fri, 06 Oct 2006 18:41:38 GMT
Don't know if I have the best answers, but I'll i'll try my best...

On Oct 5, 2006, at 8:21 PM, Prasad Kashyap wrote:

> Can someone please shed some light on it
> and help me understand the present structure ?

There are actually two different structures there.

Structure One

> openejb-itests

There are some 21 beans 400 tests in this bucket.  The test suite is  
divided into four sections; stateful, stateless, cmp (1.x), bmp.  The  
tests in each section follow a pattern of starting simple and growing  
in complexity and are in logical order as much as possible.  For  
example, we test JNDI before we test that you can lookup a bean and  
use it's create method.  We try not to put the cart before the horse  
so that if something does break, you get as far though the test suite  
as possible before you encounter the breakage (rather than the very  
first test).  It's not uncommon for tests to break while refactoring.

Structure Two

> scenario1
> scenario2
> scenario3
> cmp2-prefetch
> cmp2-petstore
> cmp2-storage
> cmp2-cmrmapping

These are security and cmp2 tests.  The cmp2 tests may easily be able  
to be folded into openejb-itests, which does not have and needs a  
cmp2 section.  Dunno, haven't looked at them too much.  The security  
tests (scenario1,2,3)  use pretty much the same beans but configured  
with different plans (IIUC).  Alan and Gianny could probably fill in  
more details on those.

> Now, are these java files disjoint enough that they can be split apart
> into as many projects as the ejb archives we need ?

I think they may group together like such:

openejb-itests

scenario1
scenario2
scenario3

cmp2-prefetch
cmp2-petstore
cmp2-storage
cmp2-cmrmapping

Don't know about the cmp2 tests, but the security tests definitely  
reuse the same classes.

> Don't think we can
> build all the classes in one core m2 project and use the classes in
> another project which has just the plan DD. Can we ?

Ejbs can use third part jars, so yes.  The bean classes and other  
classes don't actually have to be inside the same jar as the ejb- 
jar.xml and plan.  The plan for that matter doesn't have to be in the  
jar at all.

> Is the openejb-itests archive really needed ? It is the one big
> archive for the whole project that encompasses everything. It has it's
> own plan and DD and is also distributed into the server. But it also
> contains the other archives. This is kinda confusing.

The openejb-itests archive doesn't contain any other archives.  The  
module does which is probably what you meant.  As noted above, those  
other archives could likely go into their own modules.

Dunno if I really answered your question.

> I believe the test java files are in src/itest directory. However,
> they have a dependency on the java files in src/java.

IIRC, I think the ejbs themselves are in src/java and the client code  
(the unit tests) are in src/itests.

> Like I said, the
> only a subset of files in src/java are used to create archives. The
> rest are either included in that big openejb-itests archive or simply
> needed to support the junit tests in src/itests. Now why is it
> structured this way ?  Why weren't they moved to the src/itests dir
> where they are needed ?

The beans need to get packaged and deployed into the server.  The  
itests themselves could be run from maven ( no need to archive them  
really unless you want to run them again as tests in another maven  
module )

In reference to OpenEJB 3, which I guess is unlikely to be the way  
Geronimo structures it's tests, the itests are in one module as a  
plain ejb app.  We then deploy and test sever modules with them by  
declaring a dep on them with 'test' as the scope and then create  
JUnit TestSuite instances to essentially import the tests we want to  
run.  I think we run the itests about 8 times total.

[INFO] OpenEJB :: iTests .....................................  
SUCCESS [3.739s]
[INFO] OpenEJB :: Container ..................................  
SUCCESS [0.015s]
[INFO] OpenEJB :: Container :: Loader ........................  
SUCCESS [0.394s]
[INFO] OpenEJB :: Container :: Java EE .......................  
SUCCESS [2.513s]
[INFO] OpenEJB :: Container :: Core ..........................  
SUCCESS [23.354s]  (itests run 3 times)
[INFO] OpenEJB :: Container :: Persistence ...................  
SUCCESS [7.373s]
[INFO] OpenEJB :: Server .....................................  
SUCCESS [0.015s]
[INFO] OpenEJB :: Server :: Client ...........................  
SUCCESS [1.593s]
[INFO] OpenEJB :: Server :: Core .............................  
SUCCESS [2.155s]
[INFO] OpenEJB :: Server :: EJBd .............................  
SUCCESS [7.176s]  (itests run 2 times)
[INFO] OpenEJB :: Server :: Admin ............................  
SUCCESS [1.827s]
[INFO] OpenEJB :: Server :: Http .............................  
SUCCESS [8.466s]  (itests run 2 times)
[INFO] OpenEJB :: Server :: Telnet ...........................  
SUCCESS [2.324s]
[INFO] OpenEJB :: Server :: XFire ............................  
SUCCESS [1.627s]
[INFO] OpenEJB :: Server :: Axis .............................  
SUCCESS [2.207s]
[INFO] OpenEJB :: Server :: CORBA ............................  
SUCCESS [2.751s]  (not yet, but soon)
[INFO] OpenEJB :: Examples :: HelloWorld Stateful Pojo .......  
SUCCESS [3.776s]
[INFO] OpenEJB :: Examples ...................................  
SUCCESS [0.009s]

Guess that's only 7.  If you build with assemblies profile '- 
Dassemble=true' you'll get three more modules and can run the itests  
another 5 times.  In these modules we do it in maven1 still as we use  
ant/jelly to unpack our zips and stuff and run the tests against the  
final assemblies.

Not sure if that info helps what you're working on.  Let me know.

-David


Mime
View raw message