• Test execution order


    刚开始的时候,JUnit并没有规定测试方法的调用执行顺序。方法通过映射的API返回的顺序进行调用。然 而,使用JVM顺序是不明智的,因为Java平台没有规定任何特定的顺序,事实上JDK7或多或少的返回的是随机顺序。大部分写的好的测试代码不会假定一 个顺序,在特定的平台上一个可预言的失败比一个随机的失败更好。

    从4.11版本开始,如果想要改变测试执行顺序,只要简单的加一个 @FixMethodOder 注释就可以。

    目前比较常见的有三种:

    @FixMethodOrder(MethodSorters.DEFAULT):默认顺序。由方法名的哈希码值决定执行顺序。由于哈希码的生成和OS有关,所以不用的OS可能会出现不一样的执行顺序。在某一操作系统上,多次执行的顺序不变。

    @FixMethodOrder(MethodSorters.JVM):由JVM来决定执行顺序。当然执行顺序随着每一次的测试可能会有所不用。

    @FixMethodOrder(MethodSorters.NAME_ASCENDING):由方法名的字典顺序来决定执行顺序。

    import org.junit.FixMethodOrder; 
    import org.junit.Test; 
    import org.junit.runners.MethodSorters; 
    
    //@FixMethodOrder(MethodSorters.DEFAULT) 
    //@FixMethodOrder(MethodSorters.NAME_ASCENDING) 
    //@FixMethodOrder(MethodSorters.JVM) 
    public class TestExecuteOrder { 
    
    @Test 
    public void test03Third() { 
    System.out.println("test03"); 
    } 
    
    @Test 
    public void test01First() { 
    System.out.println("test01"); 
    } 
    
    @Test 
    public void test02Second() { 
    System.out.println("test02"); 
    } 
    } 

    执行结果如下

    1.什么都不加:

    test02
    test01
    test03

    2. @FixMethodOrder(MethodSorters.DEFAULT) :

    test02
    test01
    test03
    3. @FixMethodOrder(MethodSorters.NAME_ASCENDING):

    test01
    test02
    test03
    4. @FixMethodOrder(MethodSorters.JVM):

    test03
    test01
    test02

    或者

    test02
    test01
    test03

     
  • 相关阅读:
    Mysql将查出的一列数据合并为一行
    删除ArrayList的元素
    实体类Data时间限制
    java 生成随机数 自定义
    js 数组 删除第一个和最后一个
    Mybatis 返回值 返回Map的为空的值
    POI导出excel
    Objective-C 协议(接口)
    Objective-C 字典、可变字典
    Objective-C 数组、可变数组
  • 原文地址:https://www.cnblogs.com/miniren/p/4638514.html
Copyright © 2020-2023  润新知