MaxCore (JUnit API)
Date: 2016-08-24

org.junit.experimental.max

## Class MaxCore

- java.lang.Object
- - org.junit.experimental.max.MaxCore

-     public class MaxCore
      extends Object

  A replacement for JUnitCore, which keeps track of runtime and failure history, and reorders tests to maximize the chances that a failing test occurs early in the test run. The rules for sorting are:
  1. Never-run tests first, in arbitrary order
  2. Group remaining tests by the date at which they most recently failed.
  3. Sort groups such that the most recent failure date is first, and never-failing tests are at the end.
  4. Within a group, run the fastest tests first.

- - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `static MaxCore` | `forFolder(String folderName)` Deprecated. use storedLocally()
    `Result` | `run(Class<?> testClass)` Run all the tests in `class`.
    `Result` | `run(Request request)` Run all the tests contained in `request`.
    `Result` | `run(Request request, JUnitCore core)` Run all the tests contained in `request`.
    `List<Description>` | `sortedLeavesForTest(Request request)`
    `Request` | `sortRequest(Request request)`
    `static MaxCore` | `storedLocally(File storedResults)` Create a new MaxCore from a serialized file stored at storedResults

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

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

- - ### Method Detail

    - #### forFolder

          @Deprecated
          public static MaxCore forFolder(String folderName)

      Deprecated. use storedLocally()
      Create a new MaxCore from a serialized file stored at storedResults

    - #### storedLocally

          public static MaxCore storedLocally(File storedResults)

      Create a new MaxCore from a serialized file stored at storedResults

    - #### run

          public Result run(Class<?> testClass)

      Run all the tests in `class`.
      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(Request request,
                            JUnitCore core)

      Run all the tests contained in `request`. This variant should be used if `core` has attached listeners that this run should notify.
      Parameters:
        `request` - the request describing tests
        `core` - a JUnitCore to delegate to.
      Returns:
        a `Result` describing the details of the test run and the failed tests.

    - #### sortRequest

          public Request sortRequest(Request request)

      Returns:
        a new Request, which contains all of the same tests, but in a new order.

    - #### sortedLeavesForTest

          public List<Description> sortedLeavesForTest(Request request)

      Parameters:
        `request` - a request to run
      Returns:
        a list of method-level tests to run, sorted in the order specified in the class comment.