Hi Chris,

> -----Original Message-----
> From: Chris May [mailto:[EMAIL PROTECTED]
> Sent: 10 May 2004 13:06
> To: [EMAIL PROTECTED]
> Subject: Jetty integration - running individual tests
> 
> Hi all,
> 
> I'm experimenting with using the Cactus Jetty integration, as per
> http://jakarta.apache.org/cactus/integration/integration_jetty.html,
to
> unit-test JSPs and JSP2 tag files. So far so good - works great, and
> about a hundred times quicker than my previous method of deploying a
> WAR and using HttpUnit. However, I have a some questions:
> 
> The way that the Jetty server is started and stopped is with a custom
> TestSuite (JettyTestSuite) - so I have to make a decision in my code
> about when I want the server started and stopped.

Exactly. That was done on purpose as we wanted to leave you the choice
to run it with any container you may wish. Using a suite allows us 2
things:
- non-intrusiveness WRT the test (kind of an Aspect... ;-))
- ability to have a global setUp()/tearDown() method to start/stop the
server

> I can write a test suite that runs the entire set of JSP tests
> (starting Jetty once when the suite starts), or I can write a suite()
> method on each test class (starting Jetty once per class when I run
all
> of them), or I can write intermediate-sized suites that run some, but
> not all, of my test classes.
> 
> But what I'd like to be able to do is have more dynamic control than
> this. For example,
> 
>   - when I run the full suite and get 1 failure, I'd like to be able
to
> run just that one individual test method without even the rest of it's
> class.
> 
>   - I'd like to not have to remember to add a suite() method to every
> new JSP test class I write, or remember to have to add a reference to
> each new test class to an 'AllJSPTests' class
> 
> - when I run the full test suite I only want Jetty to start up once,
> but I'd still like to be able to run individual classes and have them
> start and stop Jetty for me.
> 
> I suppose that some of this functionality might be in the provided by
> the Eclipse plugin (I'm using 3.0 M8+) so perhaps one way to meet my
> needs  would be for me to help fix that, but I wonder if this is a
> problem that anyone else has experienced and/or worked around, and
that
> might have a solution which is not IDE-specific.

The Eclipse plugin should not be used. It has been decommissioned.

> 
> It seems to me that perhaps it would be possible to write a custom
> extension to TestCase, with a smart setUp/tearDown that could
> start/stop jetty only if necessary. Does that sound like it would
work?

The problem is that I have not found a nice way to do this. There is no
lifecycle hook to do this in JUnit. Or rather, there is one: it's by
providing a TestSetup/TestSuite.

I'd be happy to change the way it works if you can find a solution. 

Then only solution I can think of for now is for you to have a suite()
method in each of your test case classe. Then we could modify the
existing JettyTestSetup class to not start/stop the server if it's
already running. Would that do it for you?

Thanks
-Vincent


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to