Testng-junitreports
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レポートが表示されます-
ここでは、TestNGによって生成されたJUnit XMLレポートを使用し、Antを使用してHTMLレポートを生成する方法を見てきました。 この方法を使用して生成できるレポートには、 frames と no-frames の2種類があります。
レポート生成がフレームで構成されている場合、クラスごとに複数のファイルが生成され、メインレポートはリンクを介してそれらに接続します。 no-frames レポートは、テスト実行のすべての結果を含む単一のファイルで構成されます。 これは、Antのレポートタスクのformat属性にそれぞれの値を提供することで構成できます。