Index: [Article Count Order] [Thread]

Date:  Fri, 27 Jul 2001 16:42:29 +0900
From:  Kenji Hiranabe <hiranabe@....jp>
Subject:  [XP-jp:02293] Q: Ant JUnitReport タスクと Xalan-2
To:  extremeprogramming-jp@....jp
Message-Id:  <20010727164229F.hiranabe@....jp>
In-Reply-To:  Your message of "Fri, 27 Jul 2001 16:53:22 +0900"	<200107270733.QAA06195@....jp>
References:  <200107270733.QAA06195@....jp>
X-Mail-Count: 02293

平鍋です.

質問です,栗原さん作の,

http://objectclub.esm.co.jp/eXtremeProgramming/antdoc/PracticeAnt/ant_frameset.html

で,「Antによるユニットテストの自動化&レポート集計」が解説
されています.

JUnit のテスト結果を,XMLにするところまでは出来たのですが,
それを Xalan で HTML 整形することで失敗してしまいます.

 > --- 上記 URL より----
 > 次に,XML形式で出力されたテスト結果を,HTML形式で集計するた
 > めに必要となる,Xalan1を手に入れる必要があります.The Apache
 > XML Project(http://xml.apache.org/xalan/)のサイトから,
 > Xalan1のアーカイブをダウンロードしてきます.(現在のバージョ
 > ンのAntでは,JUnitReportタスクでXalan2はサポートされていない
 > ようです.Xalan1 compatibility jar of Xalan2ならOKのようです
 > が,試したことはありません.)

現在,Xalan1 のサイトは既に閉じられており,Xalan-Java 2 のサイトか
ら,xalanj1compat.jar, xalan.jar, xerces.jar を取って来てな
んとかしようとしていますが,うまく行きません.どなたかうまく
行った方,いらっしゃいますか?

現象としては,以下です.

以上よろしくお願いします.

=======
build.xml に

<target name="testReport" depends="model">
        <mkdir dir="TestResult"/>
        <junit fork="yes" printsummary="yes" haltonfailure="no" dir="TestResult">
            <classpath>
                <pathelement path="${java.class.path}"/>
                <pathelement location="."/>
            </classpath>
            <formatter type="xml"/>
            <batchtest fork="yes" todir="TestResult">
                <fileset dir=".">
                    <include name="model/*Test.java"/>
                </fileset>
            </batchtest>
        </junit>

        <junitreport todir="TestResult">
            <fileset dir="TestResult">
                <include name="TEST-*.xml"/>
            </fileset>
            <report format="frames" todir="TestResult"/>  <=★ 170行目
        </junitreport>
</target>
====

として testReport ターゲットを作っています.で,ant testReport とすると,

Buildfile: build.xml
BUILD FAILED

build.xml:170: java.lang.VerifyError: (class: org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer, method: getXSLStreamSource signature: (Ljava/lang/String;)Lorg/apache/xalan/xslt/XSLTInputSource;) Incompatible object argument for function call
--- Nested Exception ---
java.lang.VerifyError: (class: org/apache/tools/ant/taskdefs/optional/junit/AggregateTransformer, method: getXSLStreamSource signature: (Ljava/lang/String;)Lorg/apache/xalan/xslt/XSLTInputSource;) Incompatible object argument for function call
	at org.apache.tools.ant.taskdefs.optional.junit.XMLResultAggregator.createReport(XMLResultAggregator.java:114)
	at java.lang.reflect.Method.invoke(Native Method)
	at org.apache.tools.ant.IntrospectionHelper$1.create(IntrospectionHelper.java:167)
	at org.apache.tools.ant.IntrospectionHelper.createElement(IntrospectionHelper.java:275)
	at org.apache.tools.ant.ProjectHelper$NestedElementHandler.init(ProjectHelper.java:535)
	at org.apache.tools.ant.ProjectHelper$TaskHandler.startElement(ProjectHelper.java:499)
	at org.apache.xerces.parsers.SAXParser.startElement(SAXParser.java:1335)
	at org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:840)
	at org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:1853)
	at org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1234)
	at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
	at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:948)
	at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
	at org.apache.tools.ant.ProjectHelper.parse(ProjectHelper.java:117)
	at org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java:85)
	at org.apache.tools.ant.Main.runBuild(Main.java:403)
	at org.apache.tools.ant.Main.main(Main.java:149)

Total time: 2 seconds

以上です.