Altug
Altug

Reputation: 1743

JUnit, Selenium and tearDown

Such a junit :

    @Test
    public void testA {
//some code here...
}

    @Test
    pulic void testB {
//some code here...
}   
    @After
    public void closeBrowsers() throws Exception {
selenium.stop();
}

Here is the question : closeBrowsers() method called after every test method; in that case it is called twice and i got "Wrong test finished." from JUnit. I need a junit method/annotation which will be called after all tests finised (just called once after all tests finished), is it possible ?

Also i tried to check if selenium is up or not in closeBrowsers() but no way i couldn't find any solution.

P.S : I 've read this one : How to close a browser on a selenium RC server which lost it's client

but i couldn't understand the solution and also currently http://www.santiycr.com.ar/djangosite/blog/posts/2009/aug/25/close-remaining-browsers-from-selenium-rc blog side is down

Upvotes: 2

Views: 4604

Answers (2)

Sergii Pozharov
Sergii Pozharov

Reputation: 17828

You can make your selenium variable static, initialize it in @BeforeClass static method and cleanup in @AfterClass:

public class ...... {

  private static Selenium selenium;

  @BeforeClass
  public static void initSelenium() {
     selenium = new DefaultSelenium(...); // or initialize it in any other way
  }

  @Test
  public void testA {...}

  @Test
  pulic void testB {...}

  @AfterClass
  public static void closeBrowsers() throws Exception { 
    selenium.stop(); 
  }
}

Upvotes: 3

Reflux
Reflux

Reputation: 2939

Use the @AfterClass annotation.

http://junit.sourceforge.net/doc/faq/faq.htm#organize_3

Upvotes: 3

Related Questions