What the static 'start' gives you is that you can run single or group of tests with one single container initialization and you can right click and tests in eclipse without caring about running container.. Not sure if there is a better way but need the container setup somehow and shared by junit tests.
----- Original Message ----- From: "Harmeet Bedi" <[email protected]> To: [email protected] Sent: Wednesday, November 11, 2009 1:19:37 AM GMT -05:00 US/Canada Eastern Subject: Re: OFBiz Tests and Ant build.xml Files Another package used in testing is spring's mock servlet package 'org.springframework.mock.web'. (http://bit.ly/4zEAJF) Mockito intercepts calls with interception setup and checking in junit test. Very general purpose and can be used for servlets, delegators etc. Downside is that a parameter from a ServletRequest can be obtained many ways(getParameterMap, getParameterValues, getParameter etc.) and sometimes not worth trying to cover all ways. Mock Servlets allow tests to create your own request and session, then create your context and then call whatever you need to - service, groovy, screen render etc. and check results. Easier setup but less general. The trick to running multiple tests together was to hold on to hold on to singleton instance of 'Start' and intialize only if needed in base class of all tests your top level test case class { ... static Start start; @Override protected void setUp() throws Exception { if (start == null) { ... start = new Start(); start.init(new String[]{"test"}); ... new EntityConfigUtil().start(); } ... } ... } Harmeet ----- Original Message ----- From: "Robert Morley" <[email protected]> To: [email protected] Sent: Tuesday, November 10, 2009 11:31:39 PM GMT -05:00 US/Canada Eastern Subject: Re: OFBiz Tests and Ant build.xml Files Adrian -- While this is probably not the best practice, what we have done is create a set of abstract base classes that extend the JUnit test case. Depending on the architectural layer we are testing, these may just provide some helper methods or they may start the container and allow us to run the JUnit from in Eclipse. The penalty we pay on the longer running tests is usually around 15 seconds or so; but it does allow us to run a whole suite of test cases in Eclipse with only the container start-up penalty. In an effort to focus specifically on the business logic in service implementations, we have also made some use of Mockito. The "StandaloneMockTestCase" that we extend here avoids starting up the container and allows us to mock out both the delegator and dispatcher. This provided very targeted unit tests (usually as part of code coverage metrics) while mocking out external dependencies. If at all interested, I created a JIRA ticket and attached some source that displayed this technique. What we have not done is figure out how to integrate our unit tests with the standard ones in JUnit and have them all run as part of our automated build scripts. Currently, we only run our own unit tests. We also have not done enough work building up TestSuites at the various architectural layers as well as for each component. To be honest, I am unsure if we are even doing this in the best possible way. I started out trying to create debug configurations that would execute specific unit tests / component tests with the arguments to Start but I found it rather tedious. Moreover, it did not allow us to leverage the good tooling in the IDE. ----- Original Message ----- From: Adrian Crum <[email protected]> To: [email protected] Sent: Sat, 7 Nov 2009 02:08:54 -0500 (EST) Subject: Re: OFBiz Tests and Ant build.xml Files Mridul, Thank you! I have to confess, I don't use the command line often (actually never). I was referring to running tests from within Eclipse. But I'll give your suggestion a try! -Adrian --- On Fri, 11/6/09, Mridul Pathak <[email protected]> wrote: > From: Mridul Pathak <[email protected]> > Subject: Re: OFBiz Tests and Ant build.xml Files > To: [email protected] > Cc: "Mridul Pathak" <[email protected]> > Date: Friday, November 6, 2009, 8:22 PM > Hi Adrian, > > To run a component specific JUnit tests you > can use java -jar ofbiz.jar -test > -component='component-name'. I used it a long ago and > I can recall pretty surely that it worked. And if this > works, I believe ant run-tests -component='component-name' > should also work. > Just in case the above commands do not work > (which I doubt) then we should add this support to the > framework. > > -- > Thanks, > Mridul Pathak > > On 07-Nov-09, at 8:28 AM, Adrian Crum wrote: > > > I've been working a lot in the framework, and I would > like to get some automated tests in there. The problem is, > there is no "test" ant target at the component level. Is > there a way that can be done? I'm not familiar with ant > build.xml files, so could someone help out with that? > > > > -Adrian > > > > > > > > > >
