JUnit中@Test的运行顺序

原文链接: Test execution order
原文日期: 2012年12月06日
翻译日期: 2014年10月16日
翻译人员: 百里马

依照设计,Junit不指定test方法的运行顺序。

到眼下为止,这些test方法仍是简单地依据反射API返回的顺序来运行。

可是,因为Java平台并不能指定明白的顺序,因此使用JVM来决定test方法的顺序是不明智的。

而其实,JDK7会返回一个随机的顺序。

当然,编写完好的測试代码并不须要假定不论什么运行顺序,可是还有一些须要,并且在一些特定平台上一个可预測的错误总比随机错误要好。

从4.11版本号開始,JUnit将会默认使用一个可确定,可是不可预測的顺序(MethodSorters.DEFAULT)。

假设你想要改变test的运行顺序,那么你能够简单的在test类上加以个注解@FixMethodOrder 而且指定一个合适的MethodSorters

@FixMethodOrder(MethodSorters.JVM): 依据JVM返回的顺序来决定test方法的运行顺序。每次測试这个顺序可能都不一样

@FixMethodOrder(MethodSorters.NAME_ASCENDING): 依据test方法名依照字典顺序升序排序


注:1、Junit4.11版本号及以后才支持 2、使用Junit,须要有配合的hamcrest包


posted on 2015-02-15 16:50  gcczhongduan  阅读(703)  评论(0编辑  收藏  举报