Testng-junitreports

提供:Dev Guides
移動先:案内検索

TestNG-Junitレポート

JUnitは、ユニットテストフレームワークとして多くのJavaアプリケーションで最初に使用されたユニットフレームワークの1つです。 デフォルトでは、JUnitテストはテスト実行用の単純なレポートXMLファイルを生成します。 これらのXMLファイルを使用して、テスト要件に従ってカスタムレポートを生成できます。 XMLファイルを使用してHTMLレポートを生成することもできます。 Antには、これらのJUnit XMLファイルを入力として受け取り、HTMLレポートを生成するユーティリティタスクがあります。

TestNGは、デフォルトで(_test-output_フォルダー内の)テスト実行用のJUnit XMLレポートを生成します。 これらのXMLレポートファイルを、JUnit HTMLレポートを生成するための入力として使用できます。 例を挙げましょう。

テストケースクラスを作成する

*C:\> TestNG_WORKSPACE* に *SampleTest.java* などのJavaクラスを作成します。
import org.testng.Assert;
import org.testng.annotations.Test;

public class SampleTest {
   @Test
   public void testMethodOne() {
      Assert.assertTrue(true);
   }

   @Test
   public void testMethodTwo() {
      Assert.assertTrue(false);
   }

   @Test(dependsOnMethods = {"testMethodTwo"})
   public void testMethodThree() {
      Assert.assertTrue(true);
   }
}

上記のテストクラスには、実行時に_testMethodOne_と_testMethodThree_が合格する3つのテストメソッドが含まれていますが、_testMethodTwo_は、テストの真理条件に使用されるAssert.assertTrueメソッドに_false_ブール値を渡すことで失敗します。

testng.xmlを作成する

*C:\> TestNG_WORKSPACE* にtestng.xmlを作成して、テストケースを実行します。
<?xml version = "1.0" encoding = "UTF-8"?>
<suite name = "Simple Suite">

   <test name = "Simple test">
      <classes>
         <class name = "SampleTest"/>
      </classes>
   </test>
</suite>

javacを使用してSampleTestクラスをコンパイルします。

C:\TestNG_WORKSPACE>javac SampleTest.java

次に、testng.xmlを実行します。

C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml

出力を確認します。

===============================================
   Simple Suite
   Total tests run: 3, Failures: 1, Skips: 1
===============================================

上記の実行からJUnit XMLレポートを使用できるようになったので、簡単なAntビルド構成XMLファイルを作成して、テスト実行用のHTMLレポートを生成しましょう。

*C:\> TestNG_WORKSPACE* フォルダーの下にbuild.xmlという名前の新しいファイルを作成します。
<project name = "TestNG_WORKSPACE" default = "junit-report" basedir = ".">
   <!-- Sets the property variables to point to respective directories -->
   <property name = "junit-xml-dir" value="${basedir}/test-output/junitreports"/>
   <property name = "report-dir" value="${basedir}/html-report"/>

   <!-- Ant target to generate html report -->
   <target name = "junit-report">
      <!-- Delete and recreate the html report directories -->
      <delete dir = "${report-dir}" failonerror="false"/>
      <mkdir dir = "${report-dir}"/>
      <mkdir dir = "${report-dir}/Junit"/>
      <!-- Ant task to generate the html report.
      todir - Directory to generate the output reports

      fileset - Directory to look for the junit xml reports.

      report - defines the type of format to be generated.
      Here we are using "noframes" which generates a single html report.
      -->
      <junitreport todir = "${report-dir}/Junit">
         <fileset dir = "${junit-xml-dir}">
            <include name = "**/*.xml"/>
         </fileset>
         <report format = "noframes" todir = "${report-dir}/Junit"/>
      </junitreport>
   </target>
</project>

上記のXMLは、実行時にJUnitレポートを生成するjunit-reportという名前の特定のAntターゲットを持つ単純なAnt build.xmlファイルを定義します。 ターゲットは、ディレクトリtest-output/junitreportsの下でJUnitレポートXMLファイルを探します。 Ant構成ファイルの場合、実行するデフォルトのターゲットはjunit-reportとして構成されます。

コマンドプロンプトウィンドウを開き、コマンドプロンプトのC:\> TestNG_WORKSPACEディレクトリに移動して、コマンドを実行します。

C:\TestNG_WORKSPACE> ant

実行されると、構成されたディレクトリ/html-report/JunitにJUnit HTMLレポートが生成されます。 デフォルトのWebブラウザーでjunit-noframesという名前のファイルを開きます。 次のHTMLレポートが表示されます-

JUnitレポート

ここでは、TestNGによって生成されたJUnit XMLレポートを使用し、Antを使用してHTMLレポートを生成する方法を見てきました。 この方法を使用して生成できるレポートには、 framesno-frames の2種類があります。

レポート生成がフレームで構成されている場合、クラスごとに複数のファイルが生成され、メインレポートはリンクを介してそれらに接続します。 no-frames レポートは、テスト実行のすべての結果を含む単一のファイルで構成されます。 これは、Antのレポートタスクのformat属性にそれぞれの値を提供することで構成できます。