`

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

 
阅读更多
2016年6月8日21:33:24

http://www.cnblogs.com/nexiyi/p/junit_test_in_order.html

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测试(软件测试与质量保证实验).rar

    Junit是Java领域广泛使用的单元测试框架,它提供了一套简洁易用的API,便于开发者编写和执行测试。 **Junit测试框架** Junit是开源项目,由Eclipse基金会维护,广泛应用于Java开发环境。它为每个测试用例提供了...

    junit4单元测试

    为了控制测试的执行顺序,JUnit4提供了`@FixMethodOrder`和`@Test(order = N)`注解,使得你可以按照指定的顺序执行测试方法。这在某些需要特定执行顺序的场景下很有帮助。 除了基本的测试功能,JUnit4还可以与其他...

    JUnit测试代码示例

    6. **测试运行器**:JUnit3默认的运行器会顺序执行所有的测试,如果有测试失败,它会立即停止执行剩余的测试。 下面是一个简单的JUnit3测试示例: ```java import junit.framework.*; public class MyTest ...

    测试junit源代码

    - **测试的顺序**:虽然JUnit测试默认无序执行,但可以通过`@FixMethodOrder`控制执行顺序。 7. **总结** JUnit作为Java单元测试的标准工具,其强大的功能和简洁的API使得测试工作变得高效。理解并熟练掌握JUnit...

    junit测试工具以及安装方法

    3. **固定顺序执行测试**:使用`@FixMethodOrder`和`@Test`的`order`参数可以指定测试执行顺序。 4. **参数化测试**:使用`@RunWith(Parameterized.class)`和`@Parameters`可以实现参数化的测试用例。 5. **假对象与...

    软件测试 Junit教程

    - **执行测试:** 按照`@Test`标注的方法顺序执行。 - **清理:** 每个测试方法执行后,会运行`@After`标注的方法,最后所有测试结束后,运行`@AfterClass`标注的方法。 ### JUnit进阶 - **异常测试:** 使用`@...

    JUnit_Test_Code.zip_JUnit_JUnit测试_junit测试脚本

    2. **@Test注解**:在JUnit中,`@Test`注解标记在测试方法上,表示这是一个需要执行的测试。如果方法内部抛出了未捕获的异常,那么测试失败;如果方法正常执行完毕,那么测试成功。 3. **断言(Assertions)**:...

    测试用例 junit

    JUnit 是一个流行的 Java 测试框架,它使得编写和执行测试用例变得简单和高效。 JUnit 提供了一个平台,允许开发者编写单元测试,即针对代码中的最小可测试单元进行的测试。它支持注解(annotations)来标记测试...

    junit-4.13.2的压缩包,JUnit是Java编程语言的单元测试框架,用于编写和可重复运行的自动化测试

    JUnit4通过注解的方式来识别测试方法。目前支持的主要注解有(下列注解标示了单元测试的不同运行阶段执行的代码): @BeforeClass 全局只会执行一次,而且是第一个运行 @Before 在测试方法运行之前运行(每个测试...

    Junit4 Test 单元测试

    总结来说,Junit4 Test 单元测试是 Java 开发中的关键实践,它提供了结构化和自动化的方式来验证代码的正确性,确保软件的质量。掌握 JUnit4 的使用和测试技巧,对于编写健壮、可靠的代码至关重要。通过学习和应用...

    junit3.8jar以及源码以及测试案例详解.rar

    5. **固定测试顺序**:Junit 3.8默认按照方法名的字母顺序运行测试,但可通过`@FixMethodOrder`注解指定执行顺序。 6. **测试注解**:如`@Before`和`@After`分别表示在每个测试方法前和后执行的方法,`@BeforeClass...

    测试工具Junit4.2.zip

    11. **TestNg兼容性**:JUnit 4.2在某些方面兼容TestNG的特性,比如使用`@Test`注解的`priority`属性设置测试执行顺序。 总的来说,Junit 4.2是一个强大的测试工具,通过其丰富的注解和API,开发者可以编写出结构...

    junit单元测试junit单元测试junit单元测试

    总结来说,JUnit是Java开发中的关键工具,它简化了单元测试的编写和执行,帮助开发者发现和修复代码中的问题,从而提高软件质量。在进行单元测试时,应遵循最佳实践,确保测试的独立性、可读性和全面性,这样才能...

    JUnit3.8.1

    4. 固定的测试顺序:与JUnit 4不同,JUnit 3.8.1中的测试默认按照它们在类中声明的顺序执行,不支持根据注解或其他方式自定义顺序。 5. 测试监听器(Test Listeners):允许开发者创建自定义的监听器来记录测试事件...

    Junit4.4 Junit3.8.1

    7. **依赖注入**:JUnit 4支持依赖注入,便于在测试中模拟依赖对象。 `.CHM`文件是一种Windows的帮助文件格式,包含索引和搜索功能,可以帮助用户快速查找和学习JUnit 4.4和3.8.1的相关文档和教程。有了这个文件,...

    junit单元测试文档

    此外,文档还探讨了用户代码和扩展的相对执行顺序、状态维护以及扩展中的实用程序。 整个文档内容非常全面,不仅为初学者提供了入门知识,也为高级用户提供了深入的指导,对于想要深入理解JUnit 5的测试框架和扩展...

    Junit4.8.2(Junit4.7)

    5. **固定顺序的测试**:`@FixMethodOrder`注解可以确保测试方法按照指定顺序执行。 6. **注解驱动的生命周期**:`@Before`和`@After`定义在每个测试方法前后执行的代码,`@BeforeClass`和`@AfterClass`则是在整个...

    Junit5用户手册

    - **JUnit Platform**:这是整个JUnit5的基础,负责管理测试引擎和执行测试。 - **JUnit Jupiter**:提供了新的编程模型和API,用于编写和执行基于JUnit5的新特性(如动态测试、重复测试等)。 - **JUnit Vintage**...

Global site tag (gtag.js) - Google Analytics