
先上效果图:
修改pytest-HTML报告,分三部分.
pytest执行目录新建conftest.py文件
import pytestfrom py._xmlgen import HTMLfrom datetime import datetime"""Summary部分在此设置"""@pytest.mark.optionalhookdef 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.optionalhookdef 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.optionalhookdef 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.hookwrapperdef 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自定义动态添加描述信息全部内容,希望文章能够帮你解决pytest自定义动态添加描述信息所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)