lnt.testing
– テストデータ作成¶
LNTテスト形式を操作するためのユーティリティ。
クライアントは、送信する実行のReportオブジェクトを作成し、Report.renderを使用してサーバーに送信するのに適したJSONデータに変換することで、LNTテスト形式データを簡単に生成できます。
- class lnt.testing.Machine(name, info={}, report_version=1)¶
テストを実行したマシンの情報。
info辞書を使用して、マシンの追加情報(ハードウェアリソースやオペレーティング環境など)を記述できます。
データベース内のマシンエントリは、その名前とinfo辞書の全内容によって一意に決定されます。
- check()¶
オブジェクトメンバーが、そのインスタンスをレンダリング時に構築時に指定されたバージョンのLNT jsonレポートファイルを生成するのに十分であることを確認します。
- render()¶
jsonとして出力された場合、構築時に指定されたバージョンのLNTレポート形式を尊重する辞書内のこのインスタンスからの情報を返します。
- class lnt.testing.Report(machine, run, tests, report_version=1)¶
単一のテスト実行に関する情報。
LNTテストモデルでは、すべてのテスト実行でマシンと実行を正確に1つずつ、テストサンプルを任意の数定義する必要があります。
- check()¶
オブジェクトメンバーが、そのインスタンスをレンダリング時に構築時に指定されたバージョンのLNT jsonレポートファイルを生成するのに十分であることを確認します。
- render(indent=4)¶
構築時に指定されたバージョンのLNT jsonレポートファイル形式を文字列として返し、各オブジェクトは親オブジェクトに対してインデントスペースでインデントされます。
- update_report(new_tests_samples, end_time=None)¶
このレポートに追加のサンプルを追加し、実行の終了時間を更新します。
- class lnt.testing.Run(start_time=None, end_time=None, info={}, report_version=1)¶
特定のテスト実行に関する情報。
少なくとも1つのパラメータを指定する必要があり、複数のランの間でソートするために使用されます。バージョン1以前の形式でレポートを生成する場合、start_timeとend_timeの両方がその効果に使用され、それらの値がNoneの場合は現在の日付が使用されます。
Machineと同様に、info辞書を使用して実行に関する追加情報を記述できます。この辞書は、テスト実行全体で一定である被テストソフトウェアに関する情報を記述するために使用してください(テスト対象のリビジョン番号など)。また、分析に役立つ可能性のある現在の状態に関する情報を記述するためにも使用できます(現在のマシンの負荷など)。
- check()¶
オブジェクトメンバーが、そのインスタンスをレンダリング時に構築時に指定されたバージョンのLNT jsonレポートファイルを生成するのに十分であることを確認します。
- render()¶
jsonとして出力された場合、構築時に指定されたバージョンのLNTレポート形式を尊重する辞書内のこのインスタンスからの情報を返します。
- update_endtime(end_time=None)¶
この実行の終了時間を更新します。
- class lnt.testing.TestSamples(name, data, info={}, conv_f=<class 'float'>)¶
特定のテストとその関連するサンプルデータに関する情報。
サンプルデータはすべて同じメトリックに関連している必要があります。特定のテストに対して複数のメトリックが使用可能な場合、メトリックごとに1つのTestSamplesを用意し、メトリックを名前にエンコードする(例:Benchmark1.exec)のが慣例です。サーバーは、新しいテスト名が検出されるたびに、テストデータベースオブジェクトを自動的に作成します。TestSamplesは、LNT JSONレポートファイル形式のバージョン1以前のレポートを生成する場合にのみ使用してください。
テスト名は、実行されているものを認識可能な永続的な識別子として意図されています。現在、ほとんどの形式ではテスト名に何らかのドット表記を使用しており、これは将来形式に組み込まれる可能性があります。一般的に、テスト名は被テストソフトウェアとは独立しており、既知の量を参照する必要があります(たとえば、被テストソフトウェア)。たとえば、「CINT2006.403_gcc」は意味のあるテスト名です。
テストinfo辞書は、実行されたテストの特定の順列に関する情報を保持することを目的としています。これには、被テストソフトウェアに固有の変数が含まれる場合があります。これには、たとえば、テストがビルドされたコンパイルフラグや使用されたランタイムパラメータが含まれる場合があります。一般的なルールとして、2つのテストサンプルが意味のある形で直接比較できる場合は、テスト名が同じでinfoパラメータが異なる必要があります。
統計データを収集するために同じテストが複数回実行される状況では、レポートに各テストに対して任意の数のサンプルを含めることができます。
- render()¶
jsonとして出力された場合、構築時に指定されたバージョンのLNTレポート形式を尊重する辞書内のこのインスタンスからの情報を返します。