zoukankan      html  css  js  c++  java
  • pytest(二十)--fixture详细介绍-作为参数传入,error和failed区别

    前言

    fixture是pytest的核心功能,也是亮点功能,熟练掌握fixture的使用方法,pytest用起来才会得心应手!

    fixture简介

    fixture的目的是提供一个固定基线,在该基线上测试可以可靠地和重复地执行。fixture提供了区别于传统单元测试(setup/teardown)有显著改进:

    • 有独立的命名,并通过声明他们从测试函数、模块、类或整个项目中的使用来激活。
    • 按模块化的方式实现,每个fixture都可以互相调用。
    • fixture的范围从简单的单元扩展到复杂的功能测试,允许根据配置和组件选项对fixture和测试用例进行参数化,或者跨函数function、类class、模块module或整个测试会话session范围。

    fixture作为参数传入

    定义fixture跟定义普通函数差不多,唯一区别就是在函数上加个装饰器@pytest.fixture(),fixture命名不要用test_开头,跟用例区分开。用例才是test_开头的命名。

    fixture是可以有返回值的,如果没return默认返回None。用例调用fixture的返回值,直接就是把fixture的函数名称当成变量名称,如下面例子。

    #test_fix1.py
    import pytest
    @pytest.fixture()
    def user():
        print("得到用户名")
        a="zs"
        return a
    def test_t1(user):
        assert user=="zs"
    if __name__=="__main__":
        pytest.main(["-s","test_fix1.py"])  

    运行结果:

     error和failed区别

    测试结果一般有三种:passed、failed、error.(skip的用例除外)

    如果在test_用例里面断言失败,那就是failed

     如果在fixture里面断言失败了,那就是error

     还有一种情况也会出现error,那就是自己代码写的有问题,自己本身代码报错,那就是error了。

    越努力,越幸运!!! good good study,day day up!!!
  • 相关阅读:
    IE和FF下面的css半透明效果
    javascript 文字滚动
    利用URLRewriter重写url
    “/”应用程序中的服务器错误。
    Iframe 参数列表
    【转】CSS的一些技巧
    ASP.NET 如何动态修改 title Meta link标签
    Test2.数据库批处理添加练习(mysql_java)
    html5(test1.提交表单)
    smartupload图片上传
  • 原文地址:https://www.cnblogs.com/canglongdao/p/13408112.html
Copyright © 2011-2022 走看看