- PR -

Ant でテストを実行するとClassNotFoundException

1
投稿者投稿内容
ずご
会議室デビュー日: 2005/08/31
投稿数: 6
投稿日時: 2005-08-31 16:02
どなたかわかる方がいらしたらご教授ください。

eclipseからantを利用してjunitテストを行うと以下のエラーがでてしまいます。

メッセージ--------------------------------------------------------------

test:
[echo] #### テスト ####
[junit] Running WEB-INF/classes/test/TestStaffBean
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
[junit] Testsuite: WEB-INF/classes/test/TestStaffBean
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
[junit] Null Test: Caused an ERROR
[junit] WEB-INF/classes/test/TestStaffBean
[junit] java.lang.ClassNotFoundException: WEB-INF/classes/test/TestStaffBean
[junit] at java.lang.Class.forName0(Native Method)
[junit] at java.lang.Class.forName(Unknown Source)
[junit] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:383)
[junit] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:136)
[junit] Test WEB-INF/classes/test/TestStaffBean FAILED
BUILD FAILED: E:\dev\gw2\build.xml:88: 失敗
Total time: 3 seconds

------------------------------------------------------------------------

以前に似たような記事があるのですが、それとはまたメッセージが違います。
どちらもClassNotFoundといってはいるのですが。。

>---アレクさんの書き込み---投稿日時: 2004-12-27 00:19 -----------------------
>
>コード:
>---------------------------------------------------------------------------
>
>
>test:
> [junit] Running AntTest
> [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
> [junit] Testsuite: AntTest
> [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
> [junit] Caused an ERROR
> [junit] AntTest
> [junit] java.lang.ClassNotFoundException: AntTest
> [junit] at java.net.URLClassLoader.run(URLClassLoader.java:199)
> [junit] at java.security.AccessController.doPrivileged(Native Method)
> [junit] at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
> [junit] at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
> [junit] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
> [junit] at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
> [junit] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
> [junit] at java.lang.Class.forName0(Native Method)
> [junit] at java.lang.Class.forName(Class.java:141)
> [junit] Test AntTest FAILED
>
>
>---------------------------------------------------------------------------
>
>
>
>[設定]→[Ant]→[ランタイム]のクラスパスで junit.jar も設定したのですが、
>ClassNotFoundException が出てしまう始末です。



当方の環境は次のとおりです。
eclipse 3.0.1
jdk 1.5.0.0_04
tomcat 5.5.9
junit.jar junit-3.8.1.jar ←eclipseの[Ant]→[ランタイム]のクラスパスで設定

build.xml---------

<property name="classDir" value="WEB-INF/classes" />
<property name="srcDir" value="WEB-INF/src" />
<property name="docDir" value="doc" />
<property name="webinf" value="WEB-INF" />
<property name="lib" value="WEB-INF/lib"/>
<property name="test.class" value="WEB-INF/classes/test/TestStaffBean" />

<path id="gw.classpath">
<pathelement location="."/>
<pathelement location="${lib}/struts.jar"/>
<pathelement location="${lib}/junit-3.8.1.jar"/>
<pathelement location="E:/dev/tomcat-5.5.9/common/lib/servlet-api.jar"/>
<pathelement location="WEB-INF/classes/staff/test" />
</path>
:
:
<target name="test" depends="compile.test">
<echo></echo>
<echo>#### テスト ####</echo>
<junit printsummary="on" failureproperty="junit-test.faild">
<classpath>
<path refid="gw.classpath" />
</classpath>
<test name="${test.class}" />
<formatter type="brief" usefile="false"/>
</junit>
<fail if="junit-test.faild">
失敗
</fail>
</target>

---------------------------------------------------------------

クラスが見つからないといっているようですが、どうすれば。。
以上よろしくお願いします。
YOU@IT
ぬし
会議室デビュー日: 2002/03/29
投稿数: 284
お住まい・勤務地: 大阪
投稿日時: 2005-08-31 16:38
<property name="test.class" value="WEB-INF/classes/test/TestStaffBean" />
で指定するのは、テストクラス名(完全修飾名)であって、
Ant実行時のルートディレクトリからの相対パスではないと思います。


ずご
会議室デビュー日: 2005/08/31
投稿数: 6
投稿日時: 2005-08-31 17:12
ありがとうございます。
解決できました。

<property name="test.class" value="WEB-INF/classes/test/TestStaffBean" />
  ↓修正
<property name="test.class" value="test.TestStaffBean" />


<path id="gw.classpath">
   :
 <pathelement location="WEB-INF/classes/staff/test" />
   ↓修正
 <pathelement location="WEB-INF/classes" />
   :
</path>
1

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