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

  • 相关阅读:
    vue之路由的命名视图实现经典布局
    vue之路由的嵌套 子路由
    AngularJS阻止事件冒泡$event.stopPropagation()
    Vue之路由规则中定义参数 传参方式2 params
    前台页面中的Cookie存取删除,以及Cookie的跨域问题
    关于Cookie中的Expire问题和删除Cookie那点事儿
    4-索引中的那些操作
    3-在字符串内插中的神奇用法
    2-for循环之特别的写法与神奇的Override
    1-在C#中的数字 int double
  • 原文地址:https://www.cnblogs.com/lincj/p/5810113.html
Copyright © 2011-2022 走看看