An interesting approach. In my container-based integration testing, I've
either configured all in the pom and used the maven cargo plugin to start up
the container in pre-integration-test phase, then stop it in
post-integration-test, or when I've wanted to do everything in-process and
in-code, I've created a JUnit base test class and held a Jetty instance in a
static property (so it survives through repeated setUp/tearDowns). I don't
see what using Cargo buys you if you are setting up everything in code.
Kalle
On Sat, Apr 26, 2008 at 10:22 AM, Marco Mistroni <[EMAIL PROTECTED]>
wrote:
> hi all,
> i am running my UAT tests in mvn2 using Cargo and selenium .
> Due to problems using cargo plugin (when it started it was not able to
> find
> some jars for my webapp), i have written a base test
> which starts cargo and selenium.
> Problem i have now is that cargo starts/stops at every setUP and tearDown.
> Even though tests are ran automatically, i am trying to use a mechanism
> so tha cargo is started only once and it is stopped only once during hwole
> lifecycle of my tests.
>
> Wiuth JUnit3, i am unable to find a method that gets called only once
> (sort
> of SetUpFixture) for the whole junit session...
>
> anyone could give help hee?
>
> here' smy AbstractSeleniumTest for reference
>
> public abstract class AbstractSeleniumTest extends SeleneseTestCase {
> protected DefaultSelenium selenium;
> private Logger log = Logger.getLogger(this.getClass());
> private InstalledLocalContainer container;
>
> public void setUp() throws Exception {
> System.err.println("--SettingUp Fixture....");
> startCargo();
> selenium = createSeleniumClient("http://localhost:8080/");
> selenium.start();
> }
>
>
>
> public void tearDown() throws Exception {
> stopCargo();
> selenium.stop();
>
> }
>
> protected DefaultSelenium createSeleniumClient(String url) throws
> Exception {
> return new DefaultSelenium("localhost", 4444, "*firefox", url);
> }
>
> private void startCargo() throws Exception {
> // (1) Optional step to install the container from a URL pointing
> to
> its distribution
> System.err.println("--- Starting cargo.. ......");
> Installer installer = new ZipURLInstaller(
> new URL("
>
> http://www.apache.org/dist/tomcat/tomcat-5/v5.5.25/bin/apache-tomcat-5.5.25.zip
> "));
> installer.install();
>
> // (2) Create the Cargo Container instance wrapping our physical
> container
> LocalConfiguration configuration =
> (LocalConfiguration) new
> DefaultConfigurationFactory().createConfiguration(
> "tomcat5x", ContainerType.INSTALLED,
> ConfigurationType.STANDALONE);
> container =
> (InstalledLocalContainer) new
> DefaultContainerFactory().createContainer(
> "tomcat5x", ContainerType.INSTALLED, configuration);
> container.setHome(installer.getHome());
>
> // (3) Statically deploy some WAR (optional)
> configuration.addDeployable(new WAR("target/BudgetWeb.war"));
>
> // (4) Start the container
> container.start();
> }
>
> private void stopCargo() throws Exception {
> container.stop();
> }
>
> thanks and regards
> Marco
>