pytest自定义动态添加描述信息
先上效果图:
修改pytest-html报告,分三部分.
pytest执行目录新建conftest.py文件
- import pytest
- from py._xmlgen import html
- from datetime import datetime
- """
- Summary部分在此设置
- """
- @pytest.mark.optionalhook
- def pytest_html_results_summary(prefix, summary, postfix):
- #Get configure content.
- prefix.extend([html.p("测试人: 测试组")])
- """
- Environment部分在此设置
- """
- def pytest_configure(config):
- config._metadata['测试地址'] = xxxxxxxx#
- """
- Results部分在此设置.
- """
- @pytest.mark.optionalhook
- def pytest_html_results_table_header(cells):
- cells.insert(2, html.th('Description'))
- cells.insert(3, html.th('Time', class_='sortable time', col='time'))
- # cells.insert(1,html.th("Test_nodeid"))
- cells.pop()
- @pytest.mark.optionalhook
- def pytest_html_results_table_row(report, cells):
- cells.insert(2, html.td(report.description))
- cells.insert(3, html.td(datetime.utcnow(), class_='col-time'))
- # cells.insert(1,html.td(report.nodeid))
- cells.pop()
- @pytest.mark.hookwrapper
- def pytest_runtest_makereport(item, call):
- outcome = yield
- report = outcome.get_result()
- report.description = str(item.function.__doc__)
- report.nodeid = report.nodeid.encode("utf-8").decode("unicode_escape") #设置编码显示中文
下面说一下怎么样动态更改描述部分:
pytest-html默认获取的是测试方法的__doc__属性,也就是,测试函数下的注释 如下的""" """中的内容.
- def data(self, request):
- """
- fixture parameters.
- """
要动态传参__doc__内容也是可以的.可以通过__doc__动态修改描述.
普通方法: 方法名.__doc__='fixture parameters.'
实例方法: self.方法名.__func__.__doc__='fixture parameters.' 实例方法必须加__func__否则是只读的.
- class TestCaseExecution(object):
- """
- Use the python pytest framework.
- """
- def setup_class(self):
- pass
- def teardown_class(self):
- pass
- param_list = load_case_data()
- @pytest.fixture(scope='session', params=param_list)
- def data(self, request):
- """
- fixture parameters.
- """
- return request.param
- def testcase(self, data):
- self.testcase.__func__.__doc__ = data[0]['Desc']
- #Execution the YAML test case.
- exec_test_case(data)
使用此方法,动态传入描述.
- self.testcase.__func__.__doc__ = data[0]['Desc']
pytest自定义动态添加描述信息的更多相关文章
- WPF实现选项卡效果(3)——自定义动态添加的AvalonDock选项卡内容
原文:WPF实现选项卡效果(3)--自定义动态添加的AvalonDock选项卡内容 简介 在前面一篇文章里面,我们实现了AvalonDock选项卡的动态添加,但是对于选项卡里面的内容,我们并没有实现任 ...
- delphi XE Datasnap SERVER 在windows 7 下为服务添加描述信息
网上对服务添加描述信息的,多数是用注册表的方式,而注册表的方式,我在win7 下测试,不知为什么,总是不行,把执行的CMD以管理员模式开启,还是没加进去. 于是在网上查到下面的代码,保存供叁考,原文博 ...
- MS Sql添加描述信息 及其他信息
--查询某个表的描述 SELECT * FROM fn_listextendedproperty (NULL, 'user', 'dbo', 'table', '(表名)',NULL, NULL) - ...
- 使用sp_addextendedproperty添加描述信息
-- For table EXECUTE sp_addextendedproperty N'MS_Description', '描述内容', N'user', N'dbo', N'table', N' ...
- EF Core3.1 CodeFirst动态自动添加表和字段的描述信息
前言 我又来啦.. 本篇主要记录如何针对CodeFirst做自动添加描述的扩展 为什么要用这个呢.. 因为EF Core3.1 CodeFirst 对于自动添加描述这块 只有少部分的数据库支持.. 然 ...
- [转]Sql Server 给表与字段添加描述
/* 在SQL语句中通过系统存储过sp_addextendedproperty可为表字段添加上动态的说明(备注)下面是SQL SERVER帮助文档中对sp_addextendedproperty存储过 ...
- javascript动态添加本地文件列表信息
工作需要做了一个动态添加列表页面的小demo.用到了杂七杂八的javascript小知识. 而且并没有涉及到工作中的具体情境.有些通用,所以暂且罗列到这里.以后需要的时候可以直接拿来用. 看源码总是让 ...
- 如何使用validate.js进行动态添加和移除表单验证信息
表单是我们在开当中的常客,那么对表单的验证也是必须的,那么如何实现动态给表单添加验证规则呢? 方法: 1,动态添加验证规则 // 添加$("#addConnectUser").ru ...
- 第六种方式,python使用cached_property缓存装饰器和自定义cached_class_property装饰器,动态添加类属性(三),selnium webdriver类无限实例化控制成单浏览器。
使用 from lazy_object_proxy.utils import cached_property,使用这个装饰器. 由于官方的行数比较少,所以可以直接复制出来用自己的. class cac ...
随机推荐
- C#调用记事本并填写内容
using System.Runtime.InteropServices; using System.Diagnostics; [DllImport("User32.DLL") ...
- 深入浅出RPC——浅出篇(转载)
本文转载自这里是原文 近几年的项目中,服务化和微服务化渐渐成为中大型分布式系统架构的主流方式,而 RPC 在其中扮演着关键的作用. 在平时的日常开发中我们都在隐式或显式的使用 RPC,一些刚入行的程序 ...
- QT父子窗口事件传递与事件过滤器(讲了一些原理,比较清楚)
处理监控系统的时候遇到问题,在MainWidget中创建多个子Widget的时候,原意是想鼠标点击先让MainWidget截获处理后再分派给子Widget去处理,但调试后发现如果子Widget重新实现 ...
- asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发1-准备工作
/****** Object: 新闻表 Script Date: 2017/9/2 星期六 15:11:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENT ...
- rest_framework
一.解析器组件(parser) 1.编程:数据结构和算法的结合 2.restful规范 定义:url唯一定位资源,http请求方式区分用户行为 (1)接口设计规范 (2)返回数据规范 (3)错误消息规 ...
- sso和oauth2.0的简单了解学习
sso,单点登录,single sign on 缩写.sso多用于多个应用之间的切换,例如百度论坛.百度知道.百度云.百度文库等,在其中一个系统中登录,(登录有效期内)切换到另一个系统的时候,不必再次 ...
- Nginx多种负载均衡策略搭建
背景介绍 上篇介绍了利用Nginx反向代理实现负载均衡,本文详细讲述Nginx下的几种负载均衡策略. 轮询 轮询,顾名思义,就是轮流请求,基于上篇文章的介绍,我们将负载均衡策略聚焦于default.c ...
- KNN算法——分类部分
1.核心思想 如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性.也就是说找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该 ...
- Java集合 LinkedList的原理及使用
Java集合 LinkedList的原理及使用 LinkedList和ArrayList一样是集合List的实现类,虽然较之ArrayList,其使用场景并不多,但同样有用到的时候,那么接下来,我们来 ...
- Hexo+NexT(一):在Windows下安装Hexo+NexT及搭建博客
阅读本篇之前,假定读者已经有了Node.js的基础,如需要补充Node.js知识的,请自行百度. Hexo是在Node.js框架下的一个项目,利用Node.js提供的强大功能,完成从Markdown到 ...