zoukankan      html  css  js  c++  java
  • pytest

    1、命令规则

      测试文件名必须以“test_”开头或者"_test"结尾(如:test_ab.py)

      测试方法必须以“test_”开头。

      测试类命名以"Test"开头,并且不能带有 __init__ 方法

    2、常用注解

      (1)fixture

    标记: @pytest.fixture (scope="function",params=None,autouse=False,ids=None,name=None)

      参数解析

      1.scope

    有四个参数值:

      function(默认):文件中的每个方法前后都会运行setup和teardown

      module:在每个文件中只运行一次,在某一个方法的前后运行setup和teardown

      class:在每个类的前后执行setup和teardown

      session:在每个文件中只运行一次,在第一个方法前和最后一个方法后运行setup和teardown

      2.params

    可选的参数列表,它将导致多个参数调用fixture功能和所有测试使用它

      3.autouse

    如果为True,则为所有测试激活fixture func可以看到它;如果为False(默认值),则显示需要参考来激活fixture

      4.ids

    每个字符串id的列表,每个字符串对应于params,这样他们就是测试ID的一部分,如果没有提供ID,它们将从params自动生成

      5.name

    fixture的名称,默认为装饰函数的名称,如果fixture在定义它的同一模块中使用,夹具的功能名称将被请求夹具的功能arg遮蔽;解决这个问题的一种方法是将装饰函数命名,如下

        @pytest.fixture(name='<fixture>')

        def fixture_<fixture>():

    使用:@pytest.mark.usefixtures (*fixturenames)

    使用带标记的yield函数实现setup和teardown:

      1.yield前的为setup,yield后的为teardown

      2.如果其中一个用例出现异常,不影响yield后面的teardown执行,用例全部执行完后,yield呼唤teardown的操作

      3.如果setup就出现异常,那么不会执行teardown的内容

      4.yield可以配合with语句使用

      (2)parametrize

    参数化,为测试用例提供数据:@pytest.mark.parametrize(argnames, argvalues, indirect=False, ids=None, scope=None)

    参数:

      argnames,使用多个参数:"a,b,c"

      argvalues,多组参数值,一组为一个tuple,多组值组成一个list:[(1,2,3) (4,5,6) ]

      (3)skip/xfail

    @pytest.mark.skip(reason=None),期望失败的测试,跳过

    @pytest.mark.skipif(condition, reason=None),有条件的跳过

    @pytest.mark.xfail(condition=None, reason=None, raises=None, run=True, strict=False),希望由于某种原因而失败

    3、conftest.py配置文件

    注意:
      1.conftest.py文件名称是固定的,不能改名称

      2.conftest.py与运行的case要在同一package下

      3.不需要import conftest.py,pytest用例会自动查找

  • 相关阅读:
    Django: ModelForm中Meta的fields等成员介绍
    python的random函数
    设置mysql隔离级别
    ubantu 下 修改mysql 默认编码
    jdbc 模板 连接
    sql 注入 与解决
    jdbc 简单连接
    动态代理 例子
    自定义的一个数据输入类
    类加载器 读取配置文件
  • 原文地址:https://www.cnblogs.com/yjh1995/p/12197493.html
Copyright © 2011-2022 走看看