当前位置: 首页 > news >正文

购物网站建设项目可研报告做常识的网站

购物网站建设项目可研报告,做常识的网站,网站备案审核流程,自己网站怎么做优化pytest pytest是python的一种单元测试框架#xff0c;同自带的unit test测试框架类似#xff0c;但pytest更简洁高效。 单元测试#xff1a; 测试 函数、类、方法能不能正常运行测试的结果是否符合我们的预期结果 安装 pip install -U pytest基本使用 通过pytest包使用…pytest pytest是python的一种单元测试框架同自带的unit test测试框架类似但pytest更简洁高效。 单元测试 测试 函数、类、方法能不能正常运行测试的结果是否符合我们的预期结果 安装 pip install -U pytest基本使用 通过pytest包使用 import pytestdef test_a():print(test_a)return 1 0def test_b():print(test_b)return 1 / 0if __name__ __main__:pytest.main()默认情况下在main中直接使用pytest的main()方法会把文件中所有test_*开头的方法执行一遍。 通过终端的命令使用到所在目录下执行 # pytest或加参数都可 pytest -s单量执行测试文件 import pytestdef test_1():print(test_1)return 1 0def test_2():print(test_2--------)return 1 / 0if __name__ __main__:# 只运行 test_py2.py文件中的测试方法pytest.main([-s, test_py2.py])配置文件 测试自动触发规则 在测试目录中或当前的目录中寻找 名称为 test_*.py或*_test.py的文件 Test开头的类且没有初始化__init__方法 以上目录或类中test开头的函数或方法 会执行uinit test的测试用例类 运行pytest时自动读取所在目录中的配置文件pytest.ini。在测试文件所在目录下创建一个pytest.ini 内容如下注意以下内容请将 中文全部删掉否则可能出问题这里只是为了解释配置的。 [pytest] ; ini文件中的英文分号都是注释 addopts -s ;选项参数testpaths ./ ;测试模块所在目录python_files test_*.py *test.py ;测试文件名称python_classes Test_* ;测试类名称规则python_functions test_* ;测试函数或者方法命名规则假如我把python_functions修改为demo_*那么只有以demo_函数名命名的函数才会被执行。 断言 import pytestdef test_1():print(test_1)assert 20 20def test_2():print(test_2--------)assert a in helloif __name__ __main__:pytest.main([-s, test_py2.py])标记 标记跳过测试 标记跳过(装饰器)标记失败(装饰器) pytest.mark.skip(跳过) def test_2():print(test_2--------)return 1 / 0pytest.mark.xfail(raisesZeroDivisionError) def test_3():print(test_3--------)return 1 / 0参数化 比如写了一个函数需要模拟一些参数进行调用那么可以使用 parametrize装饰器: [“a”, “b”]列表中定义的方法参数名[(1, 2), (2, 2), (50, 51)]三组测试数据表示此方法会被调用3次 import pytestpytest.mark.parametrize([a, b], [(1, 2), (2, 2), (50, 51)]) def test_1(a, b):print(test_1)assert a b 100if __name__ __main__:pytest.main([-s, test_py3.py])夹具 在测试之前和之后执行用于固定测试环境及清理回收测试资源。 setup_...和teardown_... 模块的夹具setup_module()和teardown_module()在python文件加载前和文件内容结束后执行 import pytestdef setup_module(args):print(setup_module, args)def teardown_module(args):print(teardown_module, args)def test_fun_a():print(------------, test_fun_a)def test_fun_b():print(------------, test_fun_b)class TestOne:def test_1(self):print(------, test_1)def test_2(self):print(------, test_2)if __name__ __main__:pytest.main([-s, test_py4.py])###################################################结果######################## test_py4.py setup_module module test_py4 from D:\\environment\\python-workspace\\androidTest\\pytest\\test_py4.py ------------ test_fun_a .------------ test_fun_b .------ test_1 .------ test_2 .teardown_module module test_py4 from D:\\environment\\python-workspace\\androidTest\\pytest\\test_py4.py函数的夹具setup_function()和teardown_function()py中函数执行前和执行后执行(注意是函数不是类中的方法) import pytestdef setup_function(args):print(setup_function, args)def teardown_function(args):print(teardown_function, args)def test_fun_a():print(------------, test_fun_a)def test_fun_b():print(------------, test_fun_b)class TestOne:def test_1(self):print(------, test_1)def test_2(self):print(------, test_2)if __name__ __main__:pytest.main([-s, test_py4.py]) ###################################################结果########################test_py4.py setup_function function test_fun_a at 0x000001ED1D8C31F8 ------------ test_fun_a .teardown_function function test_fun_a at 0x000001ED1D8C31F8 setup_function function test_fun_b at 0x000001ED1D8C3288 ------------ test_fun_b .teardown_function function test_fun_b at 0x000001ED1D8C3288 ------ test_1 .------ test_2类的夹具setup_class()和teardown_class()类被加载前和销毁后执行 class TestOne:def setup_class(self):print(------, setup___test_1)def teardown_class(self):print(------, teardown___test_1)def test_1(self):print(------, test_1)def test_2(self):print(------, test_2)if __name__ __main__:pytest.main([-s, test_py4.py])###################################################结果######################## ------ setup___test_1 ------ test_1 .------ test_2 .------ teardown___test_1方法的夹具setup_method()和teardown_method()类被加载前和销毁后执行 class TestOne:def setup_class(self):print(------, setup___test_1)def teardown_class(self):print(------, teardown___test_1)def setup_method(self, args):print(------, setup_methods___test_1, args)def teardown_method(self, args):print(------, teardown_methods___test_1, args)def test_1(self):print(------, test_1)def test_2(self):print(------, test_2)if __name__ __main__:pytest.main([-s, test_py4.py])###################################################结果######################## setup___test_1 ------ setup_methods___test_1 bound method TestOne.test_1 of test_py4.TestOne object at 0x000001D972FB28C8 ------ test_1 .------ teardown_methods___test_1 bound method TestOne.test_1 of test_py4.TestOne object at 0x000001D972FB28C8 ------ setup_methods___test_1 bound method TestOne.test_2 of test_py4.TestOne object at 0x000001D972FB2988 ------ test_2 .------ teardown_methods___test_1 bound method TestOne.test_2 of test_py4.TestOne object at 0x000001D972FB2988 ------ teardown___test_1 fixture装饰器夹具 import pytest# 设置夹具 pytest.fixture() def before():print(before)# 使用夹具 pytest.mark.usefixtures(before) def test_1():print(test_1执行)# 设置夹具 有返回值 pytest.fixture() def login():print(login)return user# 使用夹具 入参 def test_2(login):print(test_2执行)print(login)pytest.fixture(params[1, 2, 3]) def init_data(request):# params中有三个元素那么此方法将执行三遍print(参数, request.param)return request.paramdef test_data(init_data):assert init_data 2if __name__ __main__:pytest.main([-s, test_py5.py]) ###################################################结果################################ test_py5.py 参数 1 F参数 2 F参数 3 .before test_1执行 .login test_2执行 user FAILURES ________________________________ test_data[1] _________________________________init_data 1def test_data(init_data):assert init_data 2 E assert 1 2test_py5.py:24: AssertionError ________________________________ test_data[2] _________________________________init_data 2def test_data(init_data):assert init_data 2 E assert 2 2test_py5.py:24: AssertionErrorshort test summary info FAILED test_py5.py::test_data[1] - assert 1 2 FAILED test_py5.py::test_data[2] - assert 2 22 failed, 3 passed in 0.03s pytest插件 html报告 安装插件 pip install pytest-html使用 命令行方式 pytest --html存储路径/report.html配置文件方式 [pytest] addopts -s --html./report.html指定运行顺序 安装插件 pip install pytest-ordering使用 添加装饰器pytest.mark.run(orderx)到测试函数或者方法上。 优先级 0和正整数 没有标记 负整数标记且在各个阶段数越小运行优先级越高 import pytestpytest.mark.run(order0) def test_1():print(1)pytest.mark.run(order-3) def test_2():print(2)pytest.mark.run(order3) def test_3():print(3)pytest.mark.run(order2) def test_4():print(4)pytest.mark.run(order1) def test_5():print(5)if __name__ __main__:pytest.main([-s, test_py6.py])###################################################结果############################### test_py6.py 1 .5 .4 .3 .2失败重试 安装插件 pip install pytest-rerunfailures使用 配置--reruns 5 重试5次 [pytest] addopts -s --reruns 5
http://www.hkea.cn/news/14542271/

相关文章:

  • 商城网站设计服务商wordpress多站点必备插件
  • 海口网站建设方案网络营销方案的传播
  • 免费php外贸网站模板互联网营销方案
  • 推荐网站空间购买做网站电信运营许可证
  • 免费网站域名云南网站建设招商
  • 网站收录怎么弄陕西多地最新通知
  • 建立网站接受投注是什么意思网站建设教程 项目式
  • 网站数据库怎么建立网站建设的培训班
  • 如何做网站美工的自做业务网站
  • 龙岩市城乡建设局网站进不去网站建设实习报告范文
  • 官方你网站建设策略重庆游戏公司
  • 西部数码网站管理助手4.0 教程app和手机网站
  • 网站建设ydwzjs托管公司是怎么托管的
  • 模仿茶叶的网站制作手机app手机网站开发
  • 资阳网站开发网站建设有哪些公司
  • 泾川网站建设重庆建设工程交易网
  • 怎么做跳转网站做企业网站建设的公司
  • 峡江网站建设全网营销推广方式
  • 推销别人做网站有什么作用wordpress首页添加站点统计显示
  • 张店网站建设wordpress响应式网站
  • 做视频添加字幕的网站yahoo提交网站入口
  • 长治一般建一个网站需要多少钱网站建设功能模块价格
  • 网站制作公司的swot分析wordpress雪人主题2.0
  • 织梦网站导航浮动确定网站风格
  • 青岛做网站找哪家好WordPress手动切换主题
  • 微信上做网站手机网站例子
  • 温州网站建设开发品牌建设制度
  • 网站后台模板 php企业网站建设需要多钱
  • 网站抠图怎么做的wordpress用户站内信
  • 书法网站建站目标网站代码优化调整