Cleanup After All Junit Tests


Answer :

I'm using JUnit 4.9. Will this help?:

import junit.framework.TestCase;  import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses;  @RunWith(Suite.class) @SuiteClasses({First.class,Second.class,Third.class}) public class RunTestSuite extends TestCase {     @BeforeClass     public static void doYourOneTimeSetup() {         ...     }      @AfterClass     public static void doYourOneTimeTeardown() {         ...     }     } 

Edit: I am quite positive (unless I misunderstand your question) that my solution is what you are looking for. i.e. one teardown method after all your tests have ran. No listener required, JUnit has this facility. Thanks.


I recommend to use org.junit.runner.notification.RunListener, example:

public class TestListener extends RunListener {   @Override   public void testRunStarted(Description description) throws Exception {      // Called before any tests have been run.   }   @Override   public void testRunFinished(Result result) throws Exception {      // Called when all tests have finished   } } 

Read more directly in JUnit java doc. You can use that even with Maven's surefire (unit tests) plugin or failsafe plugin (integration tests) by adding following code into plugin configuration:

<properties>   <property>     <name>listener</name>     <value>com.innovatrics.afismq.it.TestListener</value>   </property> </properties> 

Just encountered the same problem.
My solution:

  • For a global set up: use (lazy) singleton to access something global that requires instantiation before the tests. The first test that accesses this singleton will trigger the global set up process.
  • For a global tear down: use a Java shutdown hook:
    Runtime.getRuntime().addShutdownHook(new Thread(() -> do_your_global_cleanup())));

Comments

Popular posts from this blog

Are Regular VACUUM ANALYZE Still Recommended Under 9.1?

Can Feynman Diagrams Be Used To Represent Any Perturbation Theory?