很多情况下,写了一堆的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中按照顺序执行测试方式的更多相关文章

  1. testng xml中按顺序执行java类

    如红字部份,将安顺序执行4个类 <?xml version="1.0" encoding="UTF-8"?><suite name=" ...

  2. Java中线程顺序执行

    现有线程threadone.threadtwo和threadthree,想要的运行顺序为threadone->threadtwo->threadthree,应该如何处理?这里需要用到一个简 ...

  3. 拦截器的顺序是按照xml中的顺序执行的

  4. 《浏览器工作原理与实践》<07>变量提升:JavaScript代码是按顺序执行的吗?

    讲解完宏观视角下的浏览器后,从这篇文章开始,我们就进入下一个新的模块了,这里我会对 JavaScript 执行原理做深入介绍. 今天在该模块的第一篇文章,我们主要讲解执行上下文相关的内容.那为什么先讲 ...

  5. Maven 生命周期的概念(指令默认顺序执行)

    生命周期的概念 IDEA中使用maven构建项目都集中放到了窗口右侧"Maven Projects"中,点击该区域可以直观的看到,maven中几个常用指令都归类为LifeCycle ...

  6. 【原创】cs+html+js+css模式(七): 顺序执行与并发执行问题,IIS7及其以上版本的抛错问题解决

          在进行开发的过程中,针对于这种模式,我们继承的IRequiresSessionState,这种对于我们的同一个IIS的执行中是顺序执行即一个ajax请求处理完成后,才能执行下一个ajax, ...

  7. 【Java并发】线程的顺序执行

    /** * 问题:有线程a.b.c,如何让它们顺序执行? * 方式一:可用Join()方法实现 * 方式二:可用newSingleThreadExecutor() * Created by Smile ...

  8. 更优雅的方式: JavaScript 中顺序执行异步函数

    火于异步 1995年,当时最流行的浏览器--网景中开始运行 JavaScript (最初称为 LiveScript). 1996年,微软发布了 JScript 兼容 JavaScript.随着网景.微 ...

  9. JUnit中测试异常抛出的方法

    最近在做TWU关于TDD的作业,对JUnit中测试异常抛出的方法进行了一些学习和思考. 在进行单元测试的时候有的时候需要测试某一方法是否抛出了正确的异常.例如,我有一个方法,里面对一个List进行读取 ...

随机推荐

  1. 基于zookeeper实现分布式锁(续)

    测试代码: 效果图:

  2. Ubuntu下配置Anaconda

    转自:https://blog.csdn.net/Horcham/article/details/57075388 安装Anaconda Ubuntu下似乎库中不自带Anaconda,是自带纯净的py ...

  3. CHAPTER 38 Reading ‘the Book of Life’ The Human Genome Project 第38章 阅读生命之书 人体基因组计划

    CHAPTER 38 Reading ‘the Book of Life’ The Human Genome Project 第38章 阅读生命之书 人体基因组计划 Humans have about ...

  4. mybatis学习------打包xml映射文件

    编译mybatis时,idea不会将mybatis的xml映射文件一起打包进jar,即在编译好的jar包里缺少mybatis映射文件,导致网站加载失败 为解决这个问题,可在mybatis对应modul ...

  5. C++ Style Languages: C++, Objective-C, Java, C#

    Hyperpolyglot.org From Hyperpolyglot.org C++ Style Languages: C++, Objective-C, Java, C# a side-by-s ...

  6. js备忘录2

    JavaScript 的类型分为两类,分别是原始类型和对象类型 其中原始类型中只有数字.字符串和布尔型,和java中的有些不一样 null和undefined不是基本数据类型中的某一种 对象是prop ...

  7. Visual Studio AI 离线模型训练(window 7)

    本篇博客用tensorflow训练自带的数据mnist,参考自博客. 背景: 搭建好AI环境:查看 window 7 64位 准备工作: 在搭建AI环境过程中下载的samples-for-ai不是最新 ...

  8. 冲刺One之站立会议2

    在确定了总体目标之后,我们先决定了实现的具体功能,包括一个登陆界面,一个聊天室的主界面和服务器端的内容.我们今天完成了一小部分内容,把每个内容的主体框架搭建了起来. 效果如下图所示: 燃尽图2

  9. POJ 1239 Increasing Sequences 动态规划

    题目链接: http://poj.org/problem?id=1239 Increasing Sequences Time Limit: 1000MSMemory Limit: 10000K 问题描 ...

  10. [二叉树建树]1119. Pre- and Post-order Traversals (30) (前序和后序遍历建立二叉树)

    1119. Pre- and Post-order Traversals (30) Suppose that all the keys in a binary tree are distinct po ...