Junit指定测试执行顺序

原文链接: Test execution order
原文日期: 2012年12月06日
翻译日期: 2014年7月2日
翻译人员: 铁锚

说明: Junit4.11版本及以后才支持,建议升级到最新版本.

按照设计原则,JUnit是不指定测试方法调用执行顺序的。
目前为止,这些方法只是简单地按照反射(reflection) API返回的顺序执行。
但是,使用JVM默认提供的排序是很不明智的,因为Java平台没有指定任何有规律的顺序,
而事实上JDK 7可能会返回一个随机的顺序。
当然,精心编写的测试代码之间并不需要假定任何执行顺序,但有时候,但在某些平台上一个可预测的失败总比随机的失败要好。

从4.11版本开始,JUnit将默认使用一个确定的,但不可预测的顺序( MethodSorters.DEFAULT )。
要改变测试执行的顺序只需要在测试类(class)上使用 @FixMethodOrder 注解,并指定一个可用的MethodSorter即可:

@FixMethodOrder(MethodSorters.JVM) : 保留测试方法的执行顺序为JVM返回的顺序。每次测试的执行顺序有可能会所不同。

@FixMethodOrder(MethodSorters.NAME_ASCENDING) :根据测试方法的方法名排序,按照词典排序规则(ASC,从小到大,递增)。

Junit指定测试执行顺序,布布扣,bubuko.com

时间: 2024-12-21 14:22:21

Junit指定测试执行顺序的相关文章

关于reportng生成的测试报告不按测试执行顺序的解决办法

需要修改TestResultComparator类的源码,源码自己去reportng官网http://reportng.uncommons.org/下载,因为reportng默认是按字母先后顺序进行排序的,现修改为按执行先后顺序显示 class TestResultComparator implements Comparator<ITestResult> { public int compare(ITestResult result1, ITestResult result2) { // 按照

Spring之面向切面编程指定切面执行顺序

前言 面向切面编程,如果出现需要在切面中加如新的功能,但是又不想进入原来切面进行代码新增.这里就可以新建一个切面类,指向需要新增功能的切点上即可,但如果你需要让新增的切面方法在原来切面之前执行,那么就可以通过@Order进行指定值,值越大越先执行. 原切面类 /** * MyAspect 简要描述 * <p> TODO:描述该类职责 </p> * * @author ckmike * @version 1.0 * @date 18-12-5 下午7:09 * @copyright

JUnit中@Test的执行顺序

原文链接: Test execution order 原文日期: 2012年12月06日 翻译日期: 2014年10月16日 翻译人员: 百里马 按照设计,Junit不指定test方法的执行顺序. 到目前为止,这些test方法仍是简单地根据反射API返回的顺序来执行. 但是,由于Java平台并不能指定明确的顺序,因此使用JVM来决定test方法的顺序是不明智的. 而事实上,JDK7会返回一个随机的顺序. 当然,编写完善的测试代码并不需要假定任何执行顺序,但是另一些需要,而且在一些特定平台上一个可

Unity脚本在层级面板中的执行顺序测试2

上一篇测试了生成顺序对执行顺序的影响,链接:LINK 这篇主要测试一下Awake,OnEnable,Start三个常用消息的循环顺序 先上一个最简单的打印测试代码 void Awake() { Debug.Log("Awake" + name); } void OnEnable() { Debug.Log("OnEnable" + name); } void Start() { Debug.Log("Start" + name); } Print

Unity脚本在层级面板中的执行顺序测试4-附加内容

测试4为一些附加内容,后面的各种tips都加在此. 前几篇测试的链接: Unity脚本在层级面板中的执行顺序测试1 http://www.cnblogs.com/hont/p/4298110.html Unity脚本在层级面板中的执行顺序测试2 http://www.cnblogs.com/hont/p/5034419.html Unity脚本在层级面板中的执行顺序测试3 http://www.cnblogs.com/hont/p/5179427.html 1.基本执行顺序 Awake OnEn

Unity脚本在层级面板中的执行顺序测试

测试版本Unity4.6.因为新版本对Transform的排序做了改变,所以不排除旧版本的测试结果不一样.测试时,使用Awake中添加Debug.log(name)来测试顺序 1.不管prefab还是非prefab.执行顺序最高的均是最后创建的.比如先创建GameObject1,后创建GameObject2,后创建GameObject3.执行顺序是 GameObject3 GameObject2 GameObject1 2.通过Resources.Load的Prefab,执行顺序最高的始终是根对

junit用法,before,beforeClass,after, afterClass的执行顺序

JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation: @Before:初始化方法 对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次) @After:释放资源 对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次) @Test:测试方法,在这里可以测试期望异常和超时时间 @Test(expected=ArithmeticException.class)检查被测

TestNG基础教程 - TestNG.xml中的测试级别和常用注解执行顺序

根据testng.xml 文件配置, 测试级别为suite -> test -> class -> methods. test 对应testng.xml 中的test 标签, 而不是测试类里的@Test. 测试类里的@Test 对应 testng.xml中的methods. 创建TestCase 如TC3 运行效果 所以在使用@BeforeSuite,@BeforeTest,@BeforeClass,@BeforeMethod 等标签时, 它们的实际执行顺序也是suite -> t

控制器一些方法的执行顺序的测试

执行顺序如下: 2015-11-18 10:37:40.877 Test-All[6252:69490] viewWillAppear:2015-11-18 10:37:40.882 Test-All[6252:69490] viewWillLayoutSubviews(默认会执行一次)2015-11-18 10:37:40.882 Test-All[6252:69490] viewDidLayoutSubviews(默认会执行一次)2015-11-18 10:37:40.883 Test-Al