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    }