001 package org.junit.runner.manipulation;
002
003 /**
004 * Interface for runners that allow ordering of tests.
005 *
006 * <p>Beware of using this interface to cope with order dependencies between tests.
007 * Tests that are isolated from each other are less expensive to maintain and
008 * can be run individually.
009 *
010 * @since 4.13
011 */
012 public interface Orderable extends Sortable {
013
014 /**
015 * Orders the tests using <code>orderer</code>
016 *
017 * @throws InvalidOrderingException if orderer does something invalid (like remove or add
018 * children)
019 */
020 void order(Orderer orderer) throws InvalidOrderingException;
021 }