转自:JUnit中按照顺序执行测试方式

很多情况下,写了一堆的test case,希望某一些test case必须在某个test case之后执行。比如,测试某一个Dao代码,希望添加的case在最前面,然后是修改或者查询,最后才是删除,以前的做法把所有的方法都集中到某一个方法去执行,一个个罗列好,比较麻烦。比较幸福的事情就是JUnit4.11之后提供了MethodSorters,可以有三种方式对test执行顺序进行指定,如下:

    /**
* Sorts the test methods by the method name, in lexicographic order, with {@link Method#toString()} used as a tiebreaker
*/
NAME_ASCENDING(MethodSorter.NAME_ASCENDING), /**
* Leaves the test methods in the order returned by the JVM. Note that the order from the JVM may vary from run to run
*/
JVM(null), /**
* Sorts the test methods in a deterministic, but not predictable, order
*/
DEFAULT(MethodSorter.DEFAULT);

可以小试牛刀一下:

使用DEFAULT方式:

package com.netease.test.junit;

import org.apache.log4j.Logger;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runners.MethodSorters; /**
* User: hzwangxx
* Date: 14-3-31
* Time: 15:35
*/
@FixMethodOrder(MethodSorters.DEFAULT)
public class TestOrder {
private static final Logger LOG = Logger.getLogger(TestOrder.class);
@Test
public void testFirst() throws Exception {
LOG.info("------1--------");
} @Test
public void testSecond() throws Exception {
LOG.info("------2--------"); } @Test
public void testThird() throws Exception {
LOG.info("------3--------");
} }
/*
output:
2014-03-31 16:04:15,984 0 [main] INFO - ------1--------
2014-03-31 16:04:15,986 2 [main] INFO - ------3--------
2014-03-31 16:04:15,987 3 [main] INFO - ------2--------
*/

换成按字母排序

package com.netease.test.junit;

import org.apache.log4j.Logger;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runners.MethodSorters; /**
* User: hzwangxx
* Date: 14-3-31
* Time: 15:35
*/
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class TestOrder {
private static final Logger LOG = Logger.getLogger(TestOrder.class);
@Test
public void testFirst() throws Exception {
LOG.info("------1--------");
} @Test
public void testSecond() throws Exception {
LOG.info("------2--------"); } @Test
public void testThird() throws Exception {
LOG.info("------3--------");
} }
/*
2014-03-31 16:10:25,360 0 [main] INFO - ------1--------
2014-03-31 16:10:25,361 1 [main] INFO - ------2--------
2014-03-31 16:10:25,362 2 [main] INFO - ------3--------
*/

JUnit test case 执行顺序的更多相关文章

  1. junit4X系列源码--Junit4 Runner以及test case执行顺序和源代码理解

    原文出处:http://www.cnblogs.com/caoyuanzhanlang/p/3534846.html.感谢作者的无私分享. 前一篇文章我们总体介绍了Junit4的用法以及一些简单的测试 ...

  2. 【原创】Junit4详解二:Junit4 Runner以及test case执行顺序和源代码理解

    概要: 前一篇文章我们总体介绍了Junit4的用法以及一些简单的测试.之前我有个疑惑,Junit4怎么把一个test case跑起来的,在test case之前和之后我们能做些什么? Junit4执行 ...

  3. Junit指定测试执行顺序

    原文链接: Test execution order原文日期: 2012年12月06日翻译日期: 2014年7月2日翻译人员: 铁锚说明: Junit4.11版本及以后才支持,建议升级到最新版本.按照 ...

  4. Java之指定Junit测试方法的执行顺序举例

    问题描述: 大家都知道使用JUnit进行测试的时候,方法的执行顺序不是按照编写的先后顺序执行的,那么如何控制Junit的执行顺序呢? 解决方法: 在测试类上加 @FixMethodOrder 注解即可 ...

  5. switch case执行顺序

    public class SwitchCase { public static void main(String[] args) { System.out.println(switchFun(4)); ...

  6. [Junit] 测试方法执行顺序

    Junit 4.11里增加了指定测试方法执行顺序的特性测试类的执行顺序可通过对测试类添加注解 “@FixMethodOrder(value)” 来指定,其中value 为执行顺序三种执行顺序可供选择: ...

  7. [uiautomator篇] 设置@test的执行顺序

    http://jackyrong.iteye.com/blog/2025609 Brief Junit 4.11里增加了指定测试方法执行顺序的特性 测试类的执行顺序可通过对测试类添加注解 “@FixM ...

  8. junit里面Test Case的执行顺序

    这里讨论的是junit在ant运行的情况,其他build工具应该也适用,但具体没试验过. 首先运行junit时是按照脚本中文件夹的顺序执行,如下脚本会先执行test1目录下的测试,其实是test2目录 ...

  9. case的执行顺序 & 嵌套使用

    我们先来看一下表中数据的情况: select * from PRODUCTINFO PRODUCTID PRODUCTNAME PRODUCTPRICE QUANTITY CATEGORY DESPE ...

随机推荐

  1. PSR

    目前包括以下几个规范: PSR-0(弃用) PSR-1 PSR-2 PSR-3 PSR-4 1.PSR-0 自动加载规范,此规范已被启用-本规范已于2014年10月21日被标记为弃用,目前新的替代规范 ...

  2. kibana使用的lucene查询语法

    kibana在ELK阵营中用来查询展示数据elasticsearch构建在Lucene之上,过滤器语法和Lucene相同 kibana4官方演示页面 全文搜索 在搜索栏输入login,会返回所有字段值 ...

  3. 通过file文件选择图片预览功能

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. Substring (nyoj 308)

    练习使用字符串函数了. 1.字串的反转也是它的字串,2.最长,3.最先出现 string: #include<iostream> #include<cstdio> #inclu ...

  5. VS插件-JSEnhancements

    在Visaul Studio 2010中写js或css代码,缺少像写C#代码时的那种折叠功能,当代码比较多时,就很不方便. 今天发现,已经有VS2010扩展支持这个功能,它就是——JSEnhancem ...

  6. hibernate事务控制

    在使用ssh中将事务委托给spring时老是出现事务不可用 经过检查,原因如下: 是因为在hibernate.cfg.xml文件中忘记进行了如下设置: hibernate.current_sessio ...

  7. Html5浏览器端less应用

    之前的一个布局是用rem来做的 我上一段代码 div { margin: 0.833333333rem 0; } /* 去处a标签的下划线*/ a { text-decoration: none; } ...

  8. XTU 1245 Hamiltonian Path

    $2016$长城信息杯中国大学生程序设计竞赛中南邀请赛$C$题 简单题. 注意题目中给出的数据范围:$1 \le ai < bi \le n$,说明这是一个有向无环图,并且哈密顿路一定是$1 \ ...

  9. JDK根目录介绍

    /bin 存放可执行程序(编译器javac.exe 运行器java.exe 文档生成器javadoc.exe等 ). /db  小型数据库文件. /jre JRE. /include 形成jdk的c. ...

  10. webstorm for mac 破解步骤

    第一步:Web storm下载--从官网下载就可以 第二步:下载 - Java for OS X 2015-001--https://support.apple.com/kb/DL1572?viewl ...