• 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

  • 相关阅读:
    基于silverlight 实现的文件浏览器
    基于silerlight for embedd 视频播放器的之一的问题
    DSHOW_IVideoWindow的不解
    图片浏览开发初步的问题
    MOSS 修改计算机名称
    MOSS中显示登录用户在AD中的全名
    MOSS工作流任务权限控制
    RMS配置
    修改AD密码的方法
    MOSS母板页中的PlaceHolder
  • 原文地址:https://www.cnblogs.com/lincj/p/5810113.html
Copyright © 2020-2023  润新知