zoukankan      html  css  js  c++  java
  • pytest框架

     

     pytest相对unittest来说,有很多优点,比如pytest有大量的插件,用例失败可以定义重新执行几次....

    前置:安装pytest;

      使用pycharm打开settings,在project点击+搜索pytest后点击install即可

      

    一、pytest的命名规则:

      1、运行的.py文件必须已test开头或者结尾

      2、class类必须以test开头或者结尾

      3、def 后面函数必须以test开头或者结尾

      

    二、运行

       pytest框架运行有多种多样,

      1、写好py文件后,在cmd命令行输入:pytest xxx.py

        这种运行方式只提示运行pass或者fail,不过可以在后面添加参数

        -s :显示在测试函数中的print函数输出

        -v:显示每个测试函数结果

        -q:只显示整体结果

      2、

      我常用的是以下的一种

      在.py目录下创建有pytest.ini配置文件,内容如下:注意,开ini配置文件下最好不要有中文,不然可能会报:UnicodeDecodeError: 'gbk' codec can't decode byte 0xb0 in position 24: illegal multibyte sequence

      

       addopts:后面加运行输出参数,如-s,-v,-q,还有一些插件的参数,如图中:

          -s:表示输出测试函数中print输出

          --html=./report.htm:在当前运行目录下生成assets文件夹和report.html测试报告,需要下载pytest-html插件,在settings/project里查找下载即可

          -reruns 2 : 当测试函数运行失败后重新运行两次,需要下载pytest_rerunfailures插件,同上,也是在setting/project下载即可

      运行:在Terminal里面输入pytest运行即可:

      

    三、函数编写:

      

    class 类名:

    def 初始化函数:

    def 测试函数:

    初始化函数:用来初始化测试环境等等

          setup------>teardown: 每个测试函数运行前后各运行一次:

          

           setup_class------>teardown_class: 每个测试类运行前后各运行一次:

           

          

      @pytest.fixture:修饰固定函数,通常用来完成前置操作,功能类似与setup、setup_class

            参数:scope=?

                    class;每个类运行前运行

                    function:每个测试函数运行前运行

                    module:少用

                    session:少用

               params:list类型,用来参数化

               autouse=?

                    True:自动运行

                    False:默认false,不自动运行

          例1:function

          

            

          例子2:class

          

            

          例子3:参数化params

            

          

    参数化还有一种修饰方法:

      @pytest.mark.parametrize(”参数函数“,list表)

      list表里有多少个参数,修饰的函数就会运行多少次

      

        

     多个参数:

      

       

    四、断言

      assert  判断式

      在pytest里断言比较简单些,只判断真或假,没有unittest那么多

  • 相关阅读:
    python 变量作用域
    python 函数与模块
    python 程序控制结构
    python zip() map() filter()
    python 迭代和列表解析
    python 字典视图
    Matlab程序设计
    Matlab 基本绘图练习 包含极坐标
    Matlab 软件绘图
    Pandas 控制输出格式和精度
  • 原文地址:https://www.cnblogs.com/fengliting/p/13280716.html
Copyright © 2011-2022 走看看