• testng依赖


    Testng提供了两种依赖实现

    1.强制依赖:某个测试用例之前需要执行的依赖链中如果有一个失败,那么接下来所有的测试都不会被执行
    2.顺序依赖(软依赖):顺序依赖的用处更多是用来检测一个测试链是否按照正确的顺序执行, 即使其中某个用例执行失败,但是也不会影响整个测试链的执行dependsOnMethods
    (如果依赖的方法存在多个重载方法,那么所有的重载方法都将会被执行,如果只想执行一个方法,那么请使用dependsOnGroups)

    一、简单依赖,看如下例子

    package com.test;
    
    import org.testng.Assert;
    import org.testng.annotations.Test;
    /**
     * testng依赖测试
     * @author linchaojiang
     * 创建时间:2016-08-26
     * 更新时间:2016-08-26
     *
     */
    public class TestNGDependsTest {
        
        @Test
        public void test001(){
            System.out.println("简单依赖");
            Assert.assertTrue(true);
        }
        
        @Test
        public void test002(){
            System.out.println("简单依赖");
            Assert.assertTrue(false);
        }
        
        @Test(dependsOnMethods = { "test001" })  
        public void test003(){
            System.out.println("测试执行依赖test001,test001执行成功,此test执行");
        }
        
        @Test(dependsOnMethods = { "test002" })
        public void test004(){
            System.out.println("测试执行依赖test002,test002执行失败,此test不执行");
        }
    
    }

    运行结果:

    简单依赖
    简单依赖
    测试执行依赖test001,test001执行成功,此test执行

    PASSED: test001
    PASSED: test003
    FAILED: test002

    Default suite
    Total tests run: 4, Failures: 1, Skips: 1

    其中test004被跳过不执行

    二、默认强制依赖,看如下例子:

    import org.testng.annotations.Test;
    /**
     * testng依赖测试
     * @author linchaojiang
     * 创建时间:2016-08-26
     * 更新时间:2016-08-26
     *
     */
    public class TestNGDependsTest {
            
        @Test(groups = { "init" })  
        public void test001() {  
            System.out.println("正常执行");  
        }  
      
        @Test(groups = { "init2" })  
        public void test002() {  
       
            throw new RuntimeException("抛出异常");  
        }  
      
        @Test(dependsOnGroups = { "init.*" })  
        public void method1() {  
            System.err.println("是否执行");  
        }  
     
    
    }

    运行结果:

    正常执行

    PASSED: test001
    FAILED: test002

    Default suite
    Total tests run: 3, Failures: 1, Skips: 1

    从运行结果来看,test003被跳过了

    如果依赖的方法发生异常而不能正确的执行时,默认情况下,接下来的方法将不会被执行(强制依赖,默认) 如果在方法体的注解上设置了alwaysRun = true,那么此时在依赖链中的任何一个方法出现异常都不会影响其它方法的执行

    看如下例子:

    import org.testng.annotations.Test;
    /**
     * testng依赖测试
     * @author linchaojiang
     * 创建时间:2016-08-26
     * 更新时间:2016-08-26
     *
     */
    public class TestNGDependsTest {
            
        @Test(groups = { "init" })  
        public void test001() {  
            System.out.println("执行test002");  
        }  
      
        @Test(groups = { "init2" })  
        public void test002() {  
            System.out.println("执行test002");
            throw new RuntimeException("抛出异常");  
        }  
      
        @Test(dependsOnGroups = { "init.*" }, alwaysRun = true)  
        public void method1() {  
            System.err.println("执行method1");  
        }  

    执行结果如下:

    ===============================================
    Default test
    Tests run: 3, Failures: 1, Skips: 0

  • 相关阅读:
    升级CUDA版本导致VS2010错误:未找到导入的项目XXX,请确认<Import>声明中的路径正确,且磁盘上存在该文件
    VS中添加预处理宏的方法
    [转]CUDA和OpenGL互操作的实现及分析
    Windows7安装Envi4.8简体中文破解版
    遥感卫星数据共享服务平台:数据服务终端
    【遥感专题系列】微波遥感(三、SAR图像特征)
    【遥感专题系列】微波遥感(二、合成孔径雷达SAR基础)
    [Linux] ubuntu server sudo出现sudo:must be setuid root 完美解决办法
    [Android Pro] Android系统手机端抓包方法 和 通过File查看应用程序流量
    [Android 新特性] Android 4.3 Top 5新功能
  • 原文地址:https://www.cnblogs.com/lincj/p/5810113.html
Copyright © 2020-2023  润新知