Antでjunitテスト実行時にエラーが出る
デフォルトパッケージにUser.javaというクラスを作って、そのテストを行うUserTest.classを同じくデフォルトパッケージに作成。
これをlinuxで動作させようにも動かない。。
build.xmlは以下。
<path id="build.classpath" description="必要なファイルをクラスパスに通します。"> <fileset dir="lib"> <include name="**/*.jar" /> </fileset> </path> <target name="junit" description="JUnit実行"> <mkdir dir="doc" /> <junit fork="true" printsummary="true" maxmemory="512m"> <formatter type="plain" /> <classpath refid="build.classpath" /> <batchtest fork="yes" todir="doc"> <fileset dir="." includes="**/*Test.java" /> </batchtest> </junit> </target>
実行時のエラーは、java.lang.ClassNotFoundExceptionです。
かなりはまりましたが、結局は、次の要素をpathに追記することで解決しました。
<path id="build.classpath" description="必要なファイルをクラスパスに通します。"> <pathelement path="." /> <fileset dir="lib"> <include name="**/*.jar" /> </fileset> </path>
つまり自分自身にもパスを通すということですね。
けどwindows上だとこんなの追加しなくても動作したんですよね。なんでだろ。
あ、あとはまりがちなのが、junitタスクを実行する時には、ANT_HOME/libの下にjunit.jarを置いていないといけない、というやつ。この2点をおさえれば大抵大丈夫では。