美文网首页
Spring Junit Test 手动指定@Test运行顺序

Spring Junit Test 手动指定@Test运行顺序

作者: LoWang | 来源:发表于2017-02-08 15:59 被阅读0次

    在项目中写JunitTest类时,test的运行顺序默认是指定的,不变的,但是这个顺序是无法预估的。有时候我们想要手动去指定Test的运行顺序,在org.junit包下有个类@FixMethodOrder,这个注解类可以传入一个参数MethodSorters,具体的代码如下:

    package org.junit.runners;
    
    import java.lang.reflect.Method;
    import java.util.Comparator;
    
    import org.junit.internal.MethodSorter;
    
    /**
     * Sort the methods into a specified execution order.
     * Defines common {@link MethodSorter} implementations.
     *
     * @since 4.11
     */
    public enum MethodSorters {
        /**
         * Sorts the test methods by the method name, in lexicographic order,
         * with {@link Method#toString()} used as a tiebreaker
         */
        NAME_ASCENDING(MethodSorter.NAME_ASCENDING),
    
        /**
         * Leaves the test methods in the order returned by the JVM.
         * Note that the order from the JVM may vary from run to run
         */
        JVM(null),
    
        /**
         * Sorts the test methods in a deterministic, but not predictable, order
         */
        DEFAULT(MethodSorter.DEFAULT);
    
        private final Comparator<Method> comparator;
    
        private MethodSorters(Comparator<Method> comparator) {
            this.comparator = comparator;
        }
    
        public Comparator<Method> getComparator() {
            return comparator;
        }
    }
    
    

    但是需要注意的是,这个值在junit 4.11后才有。

    在gradle运行时,有可能不生效,可能是junit版本比较低。

    • MethodSorter.DEFAULT

      按照一个固定的顺序指定,但是这个顺序不可以预知。

    • MethodSorter.NAME_ASCENDING

      按照方法名字升续进行排序执行

    • MethodSorter.JVM

      jvm随机运行

    相关文章

      网友评论

          本文标题:Spring Junit Test 手动指定@Test运行顺序

          本文链接:https://www.haomeiwen.com/subject/enzvittx.html