原文链接: Test execution order
原始日期: 2012年12月06日本
期: 2014年7月2日
翻译人员: 铁锚
说明: Junit4.11版本号及以后才支持,建议升级到最新版本号.
依照设计原则,JUnit是不指定測试方法调用运行顺序的。
眼下为止,这些方法仅仅是简单地依照反射(reflection) API返回的顺序运行。
可是,使用JVM默认提供的排序是非常不明智的,由于Java平台没有指定不论什么有规律的顺序,
而其实JDK 7可能会返回一个随机的顺序。
当然,精心编写的測试代码之间并不须要假定不论什么运行顺序,但有时候,但在某些平台上一个可预測的失败总比随机的失败要好。
从4.11版本号開始,JUnit将默认使用一个确定的,但不可预測的顺序( MethodSorters.DEFAULT )。
原始日期: 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,从小到大,增量)。