2

ANT スクリプトを使用して JUnit テストを実行すると、テストの 1 つのグループ (TestSCF) がすべてのテストのサブセットになります。これらのテストは夜間ビルドの一部として実行され、レポートが作成されます。@IncludeCategory を使用して実行する必要があるテストを定義し、ClasspathSuite を使用してプロジェクト内のすべてのテストを検索します。

TestSCF サブセットとして実行されるように定義されたテスト クラス宣言の例。TestSCF は空のインターフェースです。

@Category(TestSCF.class)
public class ErrorDialogTest extends TestCase
{
    ....
}

メインのテスト スイート。

@RunWith(Categories.class)
@IncludeCategory(TestSCF.class)
@SuiteClasses({AllTests.class})
public class SCFTests
{
}

AllTests 宣言

@RunWith(ClasspathSuite.class)
public class AllTests
{
}

ANT スクリプトの関連部分

<!-- Run the unit tests -->
<junit showoutput   ="true"
       printsummary = "yes"
       fork         = "yes"
       timeout      = "60000" >
  <formatter type="xml"/>
  <classpath refid="cpath"/>

  <batchtest fork  = "yes"
             todir = "${test.report.dir}">
    <fileset dir="${src.dir}">
      <include name="**/SCFTests.java"/>
    </fileset>
  </batchtest>
</junit>

<!-- Copy the XML files that get deleted by junitreport -->
<mkdir dir="${junit.html.dir}/xml_files"/>
<copy todir="${junit.html.dir}/xml_files" preservelastmodified="true">
  <fileset dir="${test.report.dir}">
      <include name="*.xml"/>
  </fileset>
</copy>

<!-- Format the test results into browsable HTML -->
<junitreport todir="${junit.html.dir}">
  <fileset dir="${test.report.dir}">
    <include name="TEST-*.xml"/>
  </fileset>
  <report format="frames" todir="${junit.html.dir}"/>
</junitreport>

問題は、Junit レポートに、テストされた 1 つのクラス (SCFTests) しか表示されないことです。なぜこれが起こっているのか理解していますが、実際にテストされた各クラスのレポートを作成する方法があるかどうか、またはテストされたクラスの名前をテスト結果の「名前」に追加する方法があるかどうかを知りたいです報告。

例えば:

dev.sca.test.ErrorDialogTest 45 Passed, 3 Failures, 0 Errors

とは対照的に

SCFTests 45 Passed, 3 Failures, 0 Errors
4

1 に答える 1

3

今後の参考のために、以下のように junit-frames.xsl ファイルを変更することで、レポートの「名前」列にクラスパスを出力することができました。

<td>
  <a name="{@name}"/>
  <xsl:choose>
    <xsl:when test="boolean($show.class)">
      <a href="{concat($class.href, '#', @name)}"><xsl:value-of select="@name"/></a>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="@name"/>
    </xsl:otherwise>
  </xsl:choose>
</td>

なる

<td>
  <a name="{@name}"/>
  <xsl:choose>
    <xsl:when test="boolean($show.class)">
      <a href="{concat($class.href, '#', @classname)}"><xsl:value-of select="@classname"/></a>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="@classname"/>
    </xsl:otherwise>
  </xsl:choose>
</td>

結果:

Name                         Status Type    Time(s)
dev.sca.test.ErrorDialogTest Success        1.45
dev.sca.test.SomeOtherTest   Success        2.03
于 2012-12-18T01:18:53.687 に答える