ページを選択

JUnit から TestRail へのマッピング

JUnit レポートのサンプル

JUnit レポート フォーマットは、テスト自動化フレームワークや CI ツールがテスト結果を保存し、視覚化するのに広く使われています。TestRail CLI はレポートを解析し、要素を TestRail エンティティに変換します。それらのエンティティは API によってインポートされます。下記は標準的な JUnit レポートのサンプルです。

<testsuites name="test suites root">
  <testsuite failures="0" errors="0" skipped="1" tests="1" time="3049" name="tests.LoginTests">
    <properties>
      <property name="setting1" value="True"/>
      <property name="setting2" value="value2"/>
    </properties>
    <testcase classname="tests.LoginTests" name="test_case_1" time="159">
      <skipped type="pytest.skip" message="Please skip">skipped by user</skipped>
    </testcase>
    <testcase classname="tests.LoginTests" name="test_case_2" time="650">
    </testcase>
    <testcase classname="tests.LoginTests" name="test_case_3" time="121">
      <failure type="pytest.failure" message="Fail due to...">failed due to...</failure>
    </testcase>
  </testsuite>
</testsuites>

JUnit タグ

次の表に示すように、TestRail CLI によって Junit レポート タグが解析され、TestRail エンティティに変換されます。

XML JUnit タグ TestRail でのマッピング
<testsuites> テスト スイート
<testsuite> セクション
<testcase> テスト ケース

JUnit テスト スイート

<testsuite> タグが付いた要素は、TestRail のセクションに変換され、プロパティが TestRail のテスト ランの説明に追加されます。下に <property> 子タグを持つ <testsuite> のサンプルを示します。

<testsuites name="test suites root">
  <testsuite failures="0" errors="0" skipped="1" tests="1" time="3049" name="tests.LoginTests">
    <properties>
      <property name="setting1" value="True"/>
      <property name="setting2" value="value2"/>
    </properties>
    (...)
  </testsuite>
</testsuites>
属性またはタグ TestRail でのマッピング
name セクション名
<property> プロパティ名および値が連結され、テスト ランの説明に追加されます。

JUnit テストケース

<testcase> タグが付いた要素は TestRail のテスト ケースとそのテスト結果に変換されます。

属性 TestRail でのマッピング
name テスト ケース名
time テスト結果の経過時間です。

テスト結果ステータスは <testcase> タグの子タグによって定義されます。タグがない場合、テスト結果は Passed になります。<failure> タグがある場合、テスト結果は Failed になり、<skipped> タグがある場合、テスト結果は Retest になります。下の表はサンプルを示しています。

XML 構造 TestRail のステータス
<testcase classname="tests.LoginTests" name="test_case_1" time="135">
</testcase>
 Passed
<testcase classname="tests.LoginTests" name="test_case_1" time="135">
  <failure type="errorType" message="Failure message">
    Error (stacktrace)
  </failure>
</testcase>
 Failed
<testcase classname="tests.LoginTests" name="test_case_1" time="135">
  <skipped type="skipType" message="Skip test">
    Test skipped by user
  </skipped>
</testcase>
 Retest

属性のデータと、<failure> および <skipped> タグのテキストが下記のフォーマットでテスト結果のコメントに追加されます。

Type: errorType
Message: Failure message
Text: Error (stacktrace)

JUnit テストケース プロパティ

レポートにカスタム プロパティを追加することで、テスト ケースおよびテスト結果のデータを補足できます。サポートされるプロパティとその意味は、下の表に示されています。

名前 TestRail でのマッピング
testrail_case_field テスト ケース フィールド
testrail_result_field テスト結果フィールド
testrail_result_comment テスト結果のコメントに値を追加します。
testrail_attachment テスト結果にアップロードする添付ファイルのパスです (最大 256MB)

これらのプロパティの一部は単一の値だけを要求しますが、フィールド プロパティは、フィールド名と対応する値を必要とします。そのようなプロパティについては、field_name:field_value というフォーマットを使用します。これらのプロパティの使用方法の詳細は、TestRail CLI 使用例ページを参照してください。

<testsuites name="test suites root">
  <testsuite failures="0" errors="0" skipped="1" tests="1" time="3049" name="tests.LoginTests">
    <testcase classname="tests.LoginTests" name="test_case_1" time="650">
      <properties>
        <property name="testrail_case_field" value="custom_preconds:My preconditions"/>
        <property name="testrail_case_field" value="type_id:3"/>
        <property name="testrail_result_field" value="version:1.1"/>
        <property name="testrail_result_field" value="custom_field:custom_value"/>
        <property name="testrail_result_step" value="passed: Insert login credentials"/>
        <property name="testrail_result_step" value="failed: Click submit"/>
        <property name="testrail_result_step" value="untested: User should be logged in"/>
        <property name="testrail_result_comment" value="Finding 1"/>
        <property name="testrail_result_comment" value="Finding 2"/>
        <property name="testrail_attachment" value="path_to/logs.log"/>
        <property name="testrail_attachment" value="path_to/screenshot.jpg"/>
     </properties>
    </testcase>
  </testsuite>
</testsuites>