org.junit.runner

## Class JUnitCore

- java.lang.Object
- - org.junit.runner.JUnitCore

-     public class JUnitCore
      extends Object

  `JUnitCore` is a facade for running tests. It supports running JUnit 4 tests, JUnit 3.8.x tests, and mixtures. To run tests from the command line, run `java org.junit.runner.JUnitCore TestClass1 TestClass2 ...`. For one-shot test runs, use the static method `runClasses(Class[])`. If you want to add special listeners, create an instance of `JUnitCore` first and use it to run the tests.
  Since:
    4.0
  See Also:
    `Result`, `RunListener`, `Request`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `JUnitCore()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addListener(RunListener listener)` Add a listener to be notified as the tests run.
    `String` | `getVersion()`
    `static void` | `main(String... args)` Run the tests contained in the classes named in the `args`.
    `void` | `removeListener(RunListener listener)` Remove a listener.
    `Result` | `run(Class<?>... classes)` Run all the tests in `classes`.
    `Result` | `run(Computer computer, Class<?>... classes)` Run all the tests in `classes`.
    `Result` | `run(Request request)` Run all the tests contained in `request`.
    `Result` | `run(Runner runner)` Do not use.
    `Result` | `run(junit.framework.Test test)` Run all the tests contained in JUnit 3.8.x `test`.
    `static Result` | `runClasses(Class<?>... classes)` Run the tests contained in `classes`.
    `static Result` | `runClasses(Computer computer, Class<?>... classes)` Run the tests contained in `classes`.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### JUnitCore

          public JUnitCore()

  - ### Method Detail

    - #### main

          public static void main(String... args)

      Run the tests contained in the classes named in the `args`. If all tests run successfully, exit with a status of 0. Otherwise exit with a status of 1. Write feedback while tests are running and write stack traces for all failed tests after the tests all complete.
      Parameters:
        `args` - names of classes in which to find tests to run

    - #### runClasses

          public static Result runClasses(Computer computer,
                          Class<?>... classes)

      Run the tests contained in `classes`. Write feedback while the tests are running and write stack traces for all failed tests after all tests complete. This is similar to `main(String[])`, but intended to be used programmatically.
      Parameters:
        `computer` - Helps construct Runners from classes
        `classes` - Classes in which to find tests
      Returns:
        a `Result` describing the details of the test run and the failed tests.

    - #### runClasses

          public static Result runClasses(Class<?>... classes)

      Run the tests contained in `classes`. Write feedback while the tests are running and write stack traces for all failed tests after all tests complete. This is similar to `main(String[])`, but intended to be used programmatically.
      Parameters:
        `classes` - Classes in which to find tests
      Returns:
        a `Result` describing the details of the test run and the failed tests.

    - #### getVersion

          public String getVersion()

      Returns:
        the version number of this release

    - #### run

          public Result run(Class<?>... classes)

      Run all the tests in `classes`.
      Parameters:
        `classes` - the classes containing tests
      Returns:
        a `Result` describing the details of the test run and the failed tests.

    - #### run

          public Result run(Computer computer,
                   Class<?>... classes)

      Run all the tests in `classes`.
      Parameters:
        `computer` - Helps construct Runners from classes
        `classes` - the classes containing tests
      Returns:
        a `Result` describing the details of the test run and the failed tests.

    - #### run

          public Result run(Request request)

      Run all the tests contained in `request`.
      Parameters:
        `request` - the request describing tests
      Returns:
        a `Result` describing the details of the test run and the failed tests.

    - #### run

          public Result run(junit.framework.Test test)

      Run all the tests contained in JUnit 3.8.x `test`. Here for backward compatibility.
      Parameters:
        `test` - the old-style test
      Returns:
        a `Result` describing the details of the test run and the failed tests.

    - #### run

          public Result run(Runner runner)

      Do not use. Testing purposes only.

    - #### addListener

          public void addListener(RunListener listener)

      Add a listener to be notified as the tests run.
      Parameters:
        `listener` - the listener to add
      See Also:
        `RunListener`

    - #### removeListener

          public void removeListener(RunListener listener)

      Remove a listener.
      Parameters:
        `listener` - the listener to remove