pytestは、動的にカスタムの説明を追加します

最初のレンダリングに:

 

3つの部分に分かれpytest-HTMLレポートを、変更します。

新しいディレクトリのファイルconftest.pyのpytest実装

インポートpytest
 から py._xmlgen インポートHTML
 から日時をインポート日時
 「」「
この設定では概要セクション
」「」
@のpytest.mark.optionalhookの
DEFのpytest_html_results_summary(接頭辞、概要、postfixの):
    取得のconfigureコンテンツ。 
    prefix.extend([HTML .P(" 被験者:試験群" )])



"" " 
このセクションの環境設け
""" 
DEF :pytest_configure(設定)
    
    config._metadata [ ' テストアドレス' ] = XXXXXXXX位


"" "
この設定での結果のセクション。
「」 "
@ pytest.mark.optionalhookの
デフpytest_html_results_table_header(細胞):
    cells.insert( 2、html.th(' 説明' ))
    cells.insert( 3、html.th(' 時間'、class_が= ' ソート可能時間'、COL = ' 時間' ))
    cells.insert(1、html.th( "Test_nodeid"))
    cells.pop()

pytest.mark.optionalhook @ 
デフpytest_html_results_table_rowは(レポート、細胞):
    cells.insert( 2 、html.td( report.description))
    cells.insert(3、html.td(datetime.utcnow()、class_が= ' COL-時間' ))
     #1 cells.insert(1、html.td(report.nodeid))
    cells.pop()

@ pytest.mark.hookwrapper 
DEF pytest_runtest_makereport (項目、呼び出し):
    結果 = 降伏
    レポート = outcome.get_result()
    report.description = STR(item.function __doc__ 
    report.nodeid = report.nodeid.encode(" UTF-8 ").decode(" unicode_escape "设置编码显示中文

 

動的記述セクションを変更する方法については、以下の言いました:

pytest-HTML __doc__デフォルト属性は「」「」「で」の内容の関数として、テスト対象の試験方法、すなわち、メモを取得します。

    DEF データ(自己、リクエスト):
         "" " 
        フィクスチャパラメータ
        """

 

__doc__動的コンテンツパラメータも可能である渡す。__doc__説明を動的に変更することができます。

一般的な方法:メソッド名.__ DOC __ =「フィクスチャパラメータ」。

方法として:.セルフメソッド名。__func__ .__ DOC = __「パラメーター器具。」メソッドの例には、それ以外の__func__が読み取り専用であるために追加する必要があります。

クラスTestCaseExecution(オブジェクト):
     "" " 
    Pythonのpytestフレームワークを使用してください
    """ 
    DEF setup_class(自己):
         渡す
    

    デフ(自己)teardown_class:
         合格


    param_list = load_case_data()を

    
    pytest.fixture(スコープは、@ = ' セッション'、のparams = param_list)
     DEF データ(自己、リクエスト):
         "" " 
        フィクスチャパラメータは
        """ 
        を返すrequest.param 
    
    DEF :(テストケース自己、データ)
        self.testcaseを。__func__=データ[0] [ ' DESC ' ]
         #の実行YAMLテストケース。
        exec_test_case(データ)
        

 

この方法では、動的通過記述を使用して。

self.testcase。__func____doc__ =データ[0] [ ' DESC ' ]

 

おすすめ

転載: www.cnblogs.com/yhleng/p/11225638.html