刚开始的时候,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

转载于:https://www.cnblogs.com/miniren/p/4638514.html

Test execution order相关推荐

  1. Execution Order of Event Functions, unity 3d 事件函数的执行顺序

    vs_Community.exe --layout "F:\linson\vs2017 comm\offline" --lang zh-CN 学习unity3d,感觉事件顺序很重要 ...

  2. Dalvik Virtual Execution with SmaliVM

    Sometimes it's useful to know what code does without executing it. You could read the code with your ...

  3. Tensorrt一些优化技术介绍

    Tensorrt一些优化技术介绍 Figure 1. A quantizable AveragePool layer (in blue) is fused with a DQ layer and a ...

  4. AI基础架构Pass Infrastructure

    AI基础架构Pass Infrastructure • Operation Pass o OperationPass : Op-Specific o OperationPass : Op-Agnost ...

  5. TensorFlow Frontend前端

    TensorFlow Frontend前端 TensorFlow前端有助于将TensorFlow模型导入TVM. Supported versions: • 1.12 and below Tested ...

  6. javascript 堆栈_JavaScript调用堆栈-它是什么以及为什么它是必需的

    javascript 堆栈 The JavaScript engine (which is found in a hosting environment like the browser), is a ...

  7. 编程术语_伟大的编程术语烘烤

    编程术语 by Preethi Kasireddy 通过Preethi Kasireddy 伟大的编程术语烘烤 (The Great Programming Jargon Bake-off) Impe ...

  8. Python并发编程实例教程

    有关Python中的并发编程实例,主要是对Threading模块的应用,文中自定义了一个Threading类库. 一.简介 我们将一个正在运行的程序称为进程.每个进程都有它自己的系统状态,包含内存状态 ...

  9. TensorFlow 2.2.0-rc0,这次更新让人惊奇!

    AI编辑:我是小将 刚刚谷歌在TensorFlow 开发者峰会上发布了 TensorFlow 2.2 版,2.2版本有很多地方的更新,我觉得可能两点会让大家欣喜若狂: 1. 增加同步BN层 同步BN层 ...

最新文章

  1. 错误: (串列)对象不能强制改变成'double'解决办法
  2. index 4 is out of bounds for dimension 1 with size 4
  3. 看oracle 的数据库位数
  4. swoole的安装(已经做测试成功)
  5. Eclipse里PHP built-in server在操作系统中的实际位置
  6. iPhone12详细拆解报告出炉!(附主要器件清单)
  7. 大数据平台容量评估_大数据平台
  8. ubuntu 64 12.04 oracle,ubuntu server 12.04 x86_64 下安装oracle xe 11 x86_64
  9. 信息学奥赛一本通(1109:开关灯)
  10. ccie计算机网络英语,最新版CCIE Voice 语音方向 WOLF实验全套语音课程(含版本)...
  11. 滤镜应用——制作车辆行驶效果
  12. hdu-1542 Atlantis(离散化+线段树+扫描线算法)
  13. vb6 英文和中文长度不同_PPT里中文排版就是没英文好看?你怕是假酒喝多了…...
  14. RGBA 与 RGB 色彩模式差异
  15. Tek DPO2024B示波器和电流探头A622的使用
  16. 最新小程序反编译详细教程,亲测可用
  17. Mysql之分组查询
  18. Android Studio基础输入文本框EditText
  19. 6.10力扣 10号出去逛街了,11号补上! 打印n位数
  20. 让大数据告诉你,网红“小龙虾”究竟有多火

热门文章

  1. Dynamics AX 2009 升级PreSynchnoize时的无反应的解决
  2. explorer.exe应用程序错误说明 0X000000该内存不能为read的解决方法
  3. sql avg函数使用格式_SQL AVG-SQL平均函数用语法示例解释
  4. java通用象棋游戏_在通用国际象棋界面周围模拟GraphQL包装器
  5. arch linux安装_如何从头开始安装Arch Linux
  6. RSA加密算法破解及原理
  7. java 方法里面定义接口_java – 当接口A在其方法签名中定义接口B时
  8. 1076 Forwards on Weibo
  9. (C++)1037 在霍格沃茨找零钱的两种解法
  10. java培训班如何选择