先上效果图:

修改pytest-html报告,分三部分.

pytest执行目录新建conftest.py文件

  1. import pytest
  2. from py._xmlgen import html
  3. from datetime import datetime
  4. """
  5. Summary部分在此设置
  6. """
  7. @pytest.mark.optionalhook
  8. def pytest_html_results_summary(prefix, summary, postfix):
  9. #Get configure content.
  10. prefix.extend([html.p("测试人: 测试组")])
  11.  
  12. """
  13. Environment部分在此设置
  14. """
  15. def pytest_configure(config):
  16.  
  17. config._metadata['测试地址'] = xxxxxxxx#
  18.  
  19. """
  20. Results部分在此设置.
  21. """
  22. @pytest.mark.optionalhook
  23. def pytest_html_results_table_header(cells):
  24. cells.insert(2, html.th('Description'))
  25. cells.insert(3, html.th('Time', class_='sortable time', col='time'))
  26. # cells.insert(1,html.th("Test_nodeid"))
  27. cells.pop()
  28.  
  29. @pytest.mark.optionalhook
  30. def pytest_html_results_table_row(report, cells):
  31. cells.insert(2, html.td(report.description))
  32. cells.insert(3, html.td(datetime.utcnow(), class_='col-time'))
  33. # cells.insert(1,html.td(report.nodeid))
  34. cells.pop()
  35.  
  36. @pytest.mark.hookwrapper
  37. def pytest_runtest_makereport(item, call):
  38. outcome = yield
  39. report = outcome.get_result()
  40. report.description = str(item.function.__doc__)
  41. report.nodeid = report.nodeid.encode("utf-8").decode("unicode_escape") #设置编码显示中文

下面说一下怎么样动态更改描述部分:

pytest-html默认获取的是测试方法的__doc__属性,也就是,测试函数下的注释   如下的"""  """中的内容.

  1. def data(self, request):
  2. """
  3. fixture parameters.
  4. """

要动态传参__doc__内容也是可以的.可以通过__doc__动态修改描述.

普通方法:   方法名.__doc__='fixture parameters.'

实例方法:   self.方法名.__func__.__doc__='fixture parameters.'     实例方法必须加__func__否则是只读的.

  1. class TestCaseExecution(object):
  2. """
  3. Use the python pytest framework.
  4. """
  5. def setup_class(self):
  6. pass
  7.  
  8. def teardown_class(self):
  9. pass
  10.  
  11. param_list = load_case_data()
  12.  
  13. @pytest.fixture(scope='session', params=param_list)
  14. def data(self, request):
  15. """
  16. fixture parameters.
  17. """
  18. return request.param
  19.  
  20. def testcase(self, data):
  21. self.testcase.__func__.__doc__ = data[0]['Desc']
  22. #Execution the YAML test case.
  23. exec_test_case(data)

使用此方法,动态传入描述.

  1. self.testcase.__func__.__doc__ = data[0]['Desc']

pytest自定义动态添加描述信息的更多相关文章

  1. WPF实现选项卡效果(3)——自定义动态添加的AvalonDock选项卡内容

    原文:WPF实现选项卡效果(3)--自定义动态添加的AvalonDock选项卡内容 简介 在前面一篇文章里面,我们实现了AvalonDock选项卡的动态添加,但是对于选项卡里面的内容,我们并没有实现任 ...

  2. delphi XE Datasnap SERVER 在windows 7 下为服务添加描述信息

    网上对服务添加描述信息的,多数是用注册表的方式,而注册表的方式,我在win7 下测试,不知为什么,总是不行,把执行的CMD以管理员模式开启,还是没加进去. 于是在网上查到下面的代码,保存供叁考,原文博 ...

  3. MS Sql添加描述信息 及其他信息

    --查询某个表的描述 SELECT * FROM fn_listextendedproperty (NULL, 'user', 'dbo', 'table', '(表名)',NULL, NULL) - ...

  4. 使用sp_addextendedproperty添加描述信息

    -- For table EXECUTE sp_addextendedproperty N'MS_Description', '描述内容', N'user', N'dbo', N'table', N' ...

  5. EF Core3.1 CodeFirst动态自动添加表和字段的描述信息

    前言 我又来啦.. 本篇主要记录如何针对CodeFirst做自动添加描述的扩展 为什么要用这个呢.. 因为EF Core3.1 CodeFirst 对于自动添加描述这块 只有少部分的数据库支持.. 然 ...

  6. [转]Sql Server 给表与字段添加描述

    /* 在SQL语句中通过系统存储过sp_addextendedproperty可为表字段添加上动态的说明(备注)下面是SQL SERVER帮助文档中对sp_addextendedproperty存储过 ...

  7. javascript动态添加本地文件列表信息

    工作需要做了一个动态添加列表页面的小demo.用到了杂七杂八的javascript小知识. 而且并没有涉及到工作中的具体情境.有些通用,所以暂且罗列到这里.以后需要的时候可以直接拿来用. 看源码总是让 ...

  8. 如何使用validate.js进行动态添加和移除表单验证信息

    表单是我们在开当中的常客,那么对表单的验证也是必须的,那么如何实现动态给表单添加验证规则呢? 方法: 1,动态添加验证规则 // 添加$("#addConnectUser").ru ...

  9. 第六种方式,python使用cached_property缓存装饰器和自定义cached_class_property装饰器,动态添加类属性(三),selnium webdriver类无限实例化控制成单浏览器。

    使用 from lazy_object_proxy.utils import cached_property,使用这个装饰器. 由于官方的行数比较少,所以可以直接复制出来用自己的. class cac ...

随机推荐

  1. C#调用记事本并填写内容

    using System.Runtime.InteropServices; using System.Diagnostics;   [DllImport("User32.DLL") ...

  2. 深入浅出RPC——浅出篇(转载)

    本文转载自这里是原文 近几年的项目中,服务化和微服务化渐渐成为中大型分布式系统架构的主流方式,而 RPC 在其中扮演着关键的作用. 在平时的日常开发中我们都在隐式或显式的使用 RPC,一些刚入行的程序 ...

  3. QT父子窗口事件传递与事件过滤器(讲了一些原理,比较清楚)

    处理监控系统的时候遇到问题,在MainWidget中创建多个子Widget的时候,原意是想鼠标点击先让MainWidget截获处理后再分派给子Widget去处理,但调试后发现如果子Widget重新实现 ...

  4. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发1-准备工作

    /****** Object: 新闻表 Script Date: 2017/9/2 星期六 15:11:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENT ...

  5. rest_framework

    一.解析器组件(parser) 1.编程:数据结构和算法的结合 2.restful规范 定义:url唯一定位资源,http请求方式区分用户行为 (1)接口设计规范 (2)返回数据规范 (3)错误消息规 ...

  6. sso和oauth2.0的简单了解学习

    sso,单点登录,single sign on 缩写.sso多用于多个应用之间的切换,例如百度论坛.百度知道.百度云.百度文库等,在其中一个系统中登录,(登录有效期内)切换到另一个系统的时候,不必再次 ...

  7. Nginx多种负载均衡策略搭建

    背景介绍 上篇介绍了利用Nginx反向代理实现负载均衡,本文详细讲述Nginx下的几种负载均衡策略. 轮询 轮询,顾名思义,就是轮流请求,基于上篇文章的介绍,我们将负载均衡策略聚焦于default.c ...

  8. KNN算法——分类部分

    1.核心思想 如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性.也就是说找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该 ...

  9. Java集合 LinkedList的原理及使用

    Java集合 LinkedList的原理及使用 LinkedList和ArrayList一样是集合List的实现类,虽然较之ArrayList,其使用场景并不多,但同样有用到的时候,那么接下来,我们来 ...

  10. Hexo+NexT(一):在Windows下安装Hexo+NexT及搭建博客

    阅读本篇之前,假定读者已经有了Node.js的基础,如需要补充Node.js知识的,请自行百度. Hexo是在Node.js框架下的一个项目,利用Node.js提供的强大功能,完成从Markdown到 ...