org.junit

## Annotation Type AfterClass

-     @Retention(value=RUNTIME)
      @Target(value=METHOD)
      public @interface AfterClass

  If you allocate expensive external resources in a `BeforeClass` method you need to release them after all the tests in the class have run. Annotating a `public static void` method with `@AfterClass` causes that method to be run after all the tests in the class have been run. All `@AfterClass` methods are guaranteed to run even if a `BeforeClass` method throws an exception. The `@AfterClass` methods declared in superclasses will be run after those of the current class, unless they are shadowed in the current class.

  Here is a simple example:

       public class Example {
          private static DatabaseConnection database;
          @BeforeClass public static void login() {
                database= ...;
          }
          @Test public void something() {
                ...
          }
          @Test public void somethingElse() {
                ...
          }
          @AfterClass public static void logout() {
                database.logout();
          }
       }

  Since:
    4.0
  See Also:
    `BeforeClass`, `Test`