enabled和priority属性

本篇来继续学习@Test下的注释,这篇学习两个属性的基本使用。第一个是设置该条用例不被执行,第二个的作用是设置用例执行的优先顺序。

1. 属性enabled

       在Testng中,如果方法前面添加了@Test注释,然后没有其他的属性,那么默认这个用例会被自动运行。那么如果,我不想要某个方法运行呢?有些人第一反应就是,把这个方法前面的@Test给删除或者注释符号注销该行。不可否认,这是一个方法,但是不明智。在@Test注释中提供了一个enabled的属性,让我们临时去修改该条用例不被执行。Enable属性有两个值true和false。

场景举例:

       在单元测试,或者接口测试中。我们一般一个类文件,会写好几个测试用例来测试这个方法或者这个接口。有时候,我们需要debug,不想要其中一个或者几个用例执行,那么enabled就派上用场。例如,下面我不想让test2用例执行。

 1 package com.java.learn;
 2  
 3 import org.testng.annotations.Test;
 4  
 5 /**
 6  * create by Anthony on 2017/10/31
 7  */
 8 public class TestNG_Demo2 {
 9  
10     @Test
11     public void test1(){
12         System.out.println("test1");
13     }
14  
15     @Test(enabled=false)
16     public void test2(){
17         System.out.println("test2");
18     }
19  
20     @Test
21     public void test3(){
22         System.out.println("test3");
23     }
24  
25     @Test
26     public void test4(){
27         System.out.println("test3");
28     }
29 }

 

运行结果显示确实test2没有被执行。这种应用,一般在写测试用例,查找问题,区分干扰项的时候,经常用到。

2. 属性priority

       上面介绍了disabled一些用例执行。有时候,我们更希望,一个类文件下的测试用例按照我们设想的顺序去执行,而不是默认按照方法名的字母排序去执行。@Test注释中有一个属性,叫priority支持设置用例的优先级。如果不带这个属性,默认priority是等于0,而且priority值越小,优先级越高。来看看下面的举例。

package com.java.learn;
 
import org.testng.annotations.Test;
 
/**
 * create by Anthony on 2017/10/31
 */
public class TestNG_Demo2 {
 
    @Test(priority = 2)
    public void test1(){
        System.out.println("test1");
    }
 
    @Test(priority = 4)
    public void test2(){
        System.out.println("test2");
    }
 
    @Test(priority = 1)
    public void test3(){
        System.out.println("test3");
    }
 
    @Test
    public void test4(){
        System.out.println("test4");
    }
}

 


上面四个测试用例,我设置的优先顺序是test4->test3->test1->test2,运行一下,看看是不是这个效果。

 


关于enabled和priority属性的基本使用方法就介绍到这里,实际应用中proority用到比较多。
---------------------
作者:Anthony_tester
来源:CSDN
原文:https://blog.csdn.net/u011541946/article/details/78483775
版权声明:本文为博主原创文章,转载请附上博文链接!

posted @ 2019-01-02 15:52  HkGov  阅读(788)  评论(0编辑  收藏  举报