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

网站开发团队名称微信怎么制作网页

网站开发团队名称,微信怎么制作网页,企业购物平台,河南有名的做网站公司背景#xff1a; 根据以下简单的代码示例#xff0c;我们将从源码的角度分析其中的关键加载执行步骤#xff0c;对pytest整体流程架构有个初步学习。 代码示例#xff1a; import pytest def test_add(): assert 1 1 2 def test_sub(): assert 2 - 1 1 通过 pytes…背景 根据以下简单的代码示例我们将从源码的角度分析其中的关键加载执行步骤对pytest整体流程架构有个初步学习。 代码示例 import pytest def test_add(): assert 1  1  2 def test_sub(): assert 2 - 1  1 通过 pytest test_example.py 运行此代码示例后会触发pytest的入口函数main()这个函数定义在src/pytest/__main__.py中它的作用是创建一个PytestConfig对象并调用其 do_configure()和do_main()方法。PytestConfig对象是pytest的核心配置类它负责解析命令行参数、读取配置文件、注册插件、创建Session对象等。PytestConfig对象定义在 src/_pytest/config/__init__.py中它继承了pluggy.HookimplMarker类也就是说它可以作为一个插件管理器调用各种hook函数。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 python # src/pytest/__main__.py def main():     # 创建PytestConfig对象     config  PytestConfig()     # 调用config.do_configure()方法     config.do_configure()     # 调用config.do_main()方法     config.do_main() python # src/_pytest/config/__init__.py class PytestConfig(pluggy.HookimplMarker):     def __init__(self):         # 解析命令行参数         self.parse_args()         # 读取配置文件         self.read_config_files()         # 注册插件         self.register_plugins()         # 创建Session对象         self.session  Session(self)           def do_configure(self):         # 调用hook函数pytest_configure         self.hook.pytest_configure(configself)           def do_main(self):         # 调用hook函数pytest_sessionstart         self.hook.pytest_sessionstart(sessionself.session)         # 调用Session对象的main()方法         self.session.main() Session对象是pytest的核心上下文类它负责管理整个测试过程的信息包括收集测试用例、执行测试用例、生成测试报告等。Session对象定义在src/_pytest/main.py中它继承了 Collector类也就是说它可以作为一个测试用例收集器。Session对象的main()方法是执行测试用例的主要入口它会调用perform_collect()方法来收集测试用例并返回一个列表items然后 调用runtestloop()方法来循环执行items中的每个Item对象最后调用hook函数pytest_sessionfinish来结束测试会话并返回一个退出码exitstatus。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 python # src/_pytest/main.py class Session(Collector):     def __init__(self, config):         # 初始化一些属性和状态信息           def main(self):         # 调用perform_collect()方法收集测试用例并返回items列表         items  self.perform_collect()         # 调用runtestloop()方法循环执行items中的每个Item对象并返回退出码exitstatus         exitstatus  self.runtestloop(items)         # 调用hook函数pytest_sessionfinish来结束测试会话并返回退出码exitstatus         self.hook.pytest_sessionfinish(sessionself, exitstatusexitstatus)         return exitstatus           def perform_collect(self):         # 调用hook函数pytest_collectstart表示开始收集测试用例         self.hook.pytest_collectstart(collectorself)         # 调用自身的collect()方法来递归遍历指定的测试文件或目录并返回一个列表items         items  self.collect()         # 调用hook函数pytest_collectreport表示收集测试用例结束并生成收集报告         self.hook.pytest_collectreport(reportCollectReport(self, passed, items))         # 调用hook函数pytest_collection_modifyitems允许对收集到的Item对象进行修改         self.hook.pytest_collection_modifyitems(sessionself, configself.config, itemsitems)         # 调用hook函数pytest_deselected表示从收集到的Item对象中筛选出需要执行的Item对象         self.hook.pytest_deselected(itemsself.deselected)         # 调用hook函数pytest_collection_finish表示收集和筛选测试用例完成并返回最终要执行的Item对象列表         self.hook.pytest_collection_finish(sessionself)         return items           def runtestloop(self, items):         # 调用hook函数pytest_runtestloop表示开始循环执行测试用例         self.hook.pytest_runtestloop(sessionself)         # 遍历items列表依次取出每个Item对象         for item in items:             # 调用Item对象的runtestprotocol()方法来执行单个测试用例的协议             item.runtestprotocol()         # 返回退出码0表示成功         return 0 Item对象是pytest的核心测试类它负责封装和执行单个测试用例的信息包括名称、位置、参数化信息、标记信息等。Item对象定义在src/_pytest/python.py中它继承了Node类也 就是说它可以作为一个测试节点。Item对象的runtestprotocol()方法是执行单个测试用例的主要入口它会调用hook函数pytest_runtest_logstart来开始记录日志信息然后调用runtest()方法 来执行测试用例的前置、主体和后置部分最后调用hook函数pytest_runtest_logfinish来结束记录日志信息并生成日志报告。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 python # src/_pytest/python.py class Item(Node):     def __init__(self, name, parent, config, session):         # 初始化一些属性和状态信息           def runtestprotocol(self):         # 调用hook函数pytest_runtest_logstart表示开始记录日志信息         self.ihook.pytest_runtest_logstart(nodeidself.nodeid, locationself.location)         # 调用runtest()方法来执行测试用例的前置、主体和后置部分并返回一个列表reports         reports  self.runtest()         # 调用hook函数pytest_runtest_logfinish表示结束记录日志信息并生成日志报告         self.ihook.pytest_runtest_logfinish(nodeidself.nodeid, locationself.location)         return reports           def runtest(self):         # 创建一个空列表reports         reports  []         # 调用_setup()方法来执行测试用例的前置操作并将返回的报告添加到reports列表中         reports.append(self._setup())         # 如果前置操作没有失败或跳过则调用_call()方法来执行测试用例的主体部分并将返回的报告添加到reports列表中         if reports[-1].passed:             reports.append(self._call())         # 调用_teardown()方法来执行测试用例的后置操作并将返回的报告添加到reports列表中         reports.append(self._teardown())         # 返回reports列表         return reports           def _setup(self):         # 调用hook函数pytest_runtest_setup表示开始执行前置操作并返回一个报告setup_report         setup_report  self.ihook.pytest_runtest_setup(itemself)         return setup_report           def _call(self):         # 调用hook函数pytest_runtest_call表示开始执行主体部分并返回一个报告call_report         call_report  self.ihook.pytest_runtest_call(itemself)         return call_report           def _teardown(self):         # 调用hook函数pytest_runtest_teardown表示开始执行后置操作并返回一个报告teardown_report         teardown_report  self.ihook.pytest_runtest_teardown(itemself)         return teardown_report 总结 Pytest的加载流程大致如下 - Pytest首先会解析命令行参数确定要执行的测试文件、测试目录、测试类、测试函数等以及一些配置选项。 - Pytest会根据配置文件pytest.ini、setup.cfg、tox.ini等和命令行参数创建一个Config对象用于存储配置信息。 - Pytest会创建一个Session对象用于管理整个测试过程的上下文信息包括收集测试用例、执行测试用例、生成测试报告等。 - Pytest会调用hook函数pytest_sessionstart表示测试会话开始。 - Pytest会调用hook函数pytest_collectstart表示开始收集测试用例。 - Pytest会根据Config对象中的信息递归遍历指定的测试文件或目录寻找符合pytest约定的测试用例以test_开头的函数或方法以Test开头的类等。 - Pytest会将找到的测试用例封装成Item对象并添加到Session对象的items列表中。Item对象包含了测试用例的名称、位置、参数化信息、标记信息等。 - Pytest会调用hook函数pytest_collectreport表示收集测试用例结束并生成收集报告。 - Pytest会调用hook函数pytest_collection_modifyitems允许对收集到的Item对象进行修改例如重新排序、添加或删除标记等。 - Pytest会调用hook函数pytest_deselected表示从收集到的Item对象中筛选出需要执行的Item对象并将不需要执行的Item对象放入Session对象的deselected列表中。 - Pytest会调用hook函数pytest_collection_finish表示收集和筛选测试用例完成并返回最终要执行的Item对象列表。 - Pytest会根据是否使用多进程或多线程模式创建相应的WorkerController对象用于管理多个Worker对象。Worker对象负责执行具体的测试用例并将结果返回给WorkerController对象。 - Pytest会调用hook函数pytest_runtestloop表示开始循环执行测试用例。 - Pytest会遍历Session对象中的items列表依次取出每个Item对象并调用hook函数pytest_runtest_protocol表示开始执行单个测试用例的协议。 - Pytest会调用hook函数pytest_runtest_logstart表示开始记录单个测试用例的日志信息。 - Pytest会调用hook函数pytest_runtest_setup表示开始执行单个测试用例的前置操作例如setup函数或方法。 - Pytest会调用hook函数pytest_runtest_call表示开始执行单个测试用例的主体部分例如测试函数或方法。 - Pytest会调用hook函数pytest_runtest_teardown表示开始执行单个测试用例的后置操作例如teardown函数或方法。 - Pytest会调用hook函数pytest_runtest_logfinish表示结束记录单个测试用例的日志信息并生成日志报告。 - Pytest会调用hook函数pytest_runtest_makereport表示根据单个测试用例的执行结果生成测试报告包括setup、call和teardown三个阶段的报告。 - Pytest会重复上述步骤直到所有的Item对象都被执行完毕。 - Pytest会调用hook函数pytest_sessionfinish表示测试会话结束并生成最终的测试报告包括所有Item对象的报告。 - Pytest会调用hook函数pytest_terminal_summary表示在终端输出最终的测试结果和统计信息。 这可能是B站最详细的pytest自动化测试框架教程整整100小时全程实战
http://www.w-s-a.com/news/46303/

相关文章:

  • 忻州网站建设培训友情链接交换形式有哪些
  • 佛山做外贸网站渠道外贸常用网站
  • 文章收录网站网站及新媒体建设办法
  • 招聘网站排行榜2021找建网站公司
  • 网站建设制作宝塔面板活动宣传推广的形式有哪些
  • 掉关键词网站敏捷软件开发流程
  • 微信小程序格泰网站建设新闻采编与制作专业简历
  • 电子商城建设网站海伦网站建设
  • 南充能够建设网站的公司有专门做设计的一个网站
  • 免费域名申请个人网站阿里巴巴运营的工作内容
  • 怎么建自己的手机网站保定电子商务网站建设
  • 系部网站建设中期检查表创建网站的公司
  • 西宁网站建设优化重庆企业的网站建设
  • 贝壳企业网站管理系统徽与章网站建设宗旨
  • 郑州网站模板动漫设计与制作设计课程
  • 在线制作网站的工具岳阳网站设计改版
  • 网站建设需要汇报哪些内容前端开发的工作内容
  • 无锡阿凡达网站建设美团app开发公司
  • 个性化企业网站制作公司深圳高端网站定制公
  • 专业深圳网站定制开发企业网站开发 流程
  • 网站建设推广的软文php网站平台
  • 如何做代刷网站长外贸网站个性设计
  • 合同网站开发 设计 后期维护如何搭建海外网络
  • 提供网站建设服务优化大师哪个好
  • 军队营房基础建设网站哦咪咖网站建设
  • fifa17做任务网站app下载免费安装
  • 网站开发用哪些技术seo是什么意思为什么要做seo
  • 网站会动的页面怎么做的与网站建设有关的招标文件
  • 公司网站如何做seowordpress付费资源
  • 福田做商城网站建设哪家公司便宜点WordPress安装子目录