pytest自定义动态添加描述信息

pytest自定义动态添加描述信息,第1张

概述先上效果图:   修改pytest-html报告,分三部分. pytest执行目录新建conftest.py文件 import pytestfrom py._xmlgen import htmlfrom datetime import datetime"""Summary部分在此设置"""@pytest.mark.optionalhookdef pytest_html_

先上效果图:

 

修改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自定义动态添加描述信息所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1052153.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存