- PR -

antのjunitタスク

1
投稿者投稿内容
sinh
ベテラン
会議室デビュー日: 2003/01/22
投稿数: 87
投稿日時: 2004-05-04 17:18
お世話になります。

Antのjunitタスクを行いたいと思い、

WEB-INF
+src
| +build.xml
| +ソースファイル
+lib
| +Jarファイル
+classes
| +クラスファイル
+test
+テスト用(ソース+クラス)ファイル

というディレクトリ構成でWEB-INF/src/build.xmlに

------ build.xml ---------------------------------------------------------
<property name="work" value=".."/>
<property name="lib" value="lib"/>
<property name="report.dir" value="reports"/>
<target name="junit">
<mkdir dir="${work}/${report.dir}"/>
<delete>
<fileset dir="${work}/${report.dir}" includes="**/*"/>
</delete>
<junit printsummary="yes" haltonfailure="no">
<classpath>
<fileset dir="${work}/${lib}">
<include name="*"/>
</fileset>
<fileset dir="${work}/test">
<include name="*"/>
</fileset>
</classpath>
<formatter type="xml"/>
<batchtest fork="yes" todir="${work}/${report.dir}">
<fileset dir="${work}/test">
<include name="**/Test*.java"/>
</fileset>
</batchtest>
</junit>
</target>
----------------------------------------------------------------------
というtargetを記述し実行したのですが、

WEB-INF/reports/TEST-TestLoginAction.xmlファイルに
---- TEST-TestLoginAction.xml -------------------------------------
<error message="TestLoginAction" type="java.lang.ClassNotFoundException">java.lang.ClassNotFoundException: TestLoginAction
at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
</error>
----------------------------------------------------------------
という内容が出力されます。

TestLoginAction.classはWEB-INF/testの下にあるのですが、
どのようにすれば正常に実行されるようになるのでしょうか?

よろしくお願いします。


aa
ぬし
会議室デビュー日: 2004/01/08
投稿数: 299
投稿日時: 2004-05-04 18:19
<pathelement>を使った方が良いと思うのですが、とりあえず
コード:
<fileset dir="${work}/test">
  <include name="**/*"/>
</fileset> 


でどうでしょう?
sinh
ベテラン
会議室デビュー日: 2003/01/22
投稿数: 87
投稿日時: 2004-05-04 20:46
--- aaさん:引用--------------------------------
コード:
<fileset dir="${work}/test">
<include name="**/*"/>
</fileset>
-----------------------------------------------
としたら動くようになりました。
ありがとうございました。

また、
--- aaさん:引用--------------------------------
<pathelement>を使った方が良いと思うのですが
-----------------------------------------------
とありますが、
<fileset>と<pathelement>ではどのような違いが
あるのでしょうか?

aa
ぬし
会議室デビュー日: 2004/01/08
投稿数: 299
投稿日時: 2004-05-04 22:58
特定のファイル群(*.javaとか)を参照したいわけじゃなく、単にパスを通したいだけみたいでしたから、わざわざ**/*なんていう指定をしなくてもいいかなと思っただけです。
詳細はこちらをご覧ください。
http://www.jajakarta.org/ant/ant-1.5/docs/ant-1.5/j/docs/manual/using.html#path
1

スキルアップ/キャリアアップ(JOB@IT)