zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Windows JScript 在 游览器 中运行 调试 Shell 文件系统
    autohotkey 符号链接 软连接 symbolink
    软链接 硬链接 测试
    SolidWorks 修改 基准面 标准坐标系
    手机 路径 WebDAV 映射 驱动器
    Win10上手机路径
    explorer 命令行
    单位公司 网络 封锁 屏蔽 深信 AC
    cobbler自动化部署原理篇
    Docker四种网络模式
  • 原文地址:https://www.cnblogs.com/lincj/p/5810113.html
Copyright © 2011-2022 走看看