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