6
我的項目上有JUnit測試,它可以在Eclipse中正確運行。與Ant集成的Junit測試使用ClassNotFoundException失敗
所以,現在我嘗試將這些測試與螞蟻任務集成在一起。爲了讓我做以下ant腳本:
<path id="classpath-test">
<pathelement path="." />
<pathelement path="${classes.home}" />
<fileset dir="${lib.home}" includes="*.jar" />
<fileset dir="${libtest.home}" includes="*.jar" />
</path>
<target name="compile" ... > // compiles src code of the project
<target name="compile-tests" depends="compile">
<javac srcdir="${test.home}"
destdir="${testclasses.home}"
target="1.5"
source="1.5"
debug="true"
>
<classpath refid="classpath-test" />
</javac>
<copy todir="${testclasses.home}">
<fileset dir="${test.home}">
<exclude name="**/*.java"/>
</fileset>
</copy>
</target>
<target name="unit-test" depends="compile-tests">
<junit printsummary="false" fork="off" haltonfailure="true">
<classpath refid="classpath-test" />
<formatter type="brief" usefile="false" />
<test name="com.test.MyTest" />
<!--<batchtest todir="${reports.dir}" >
<fileset dir="${testclasses.home}" >
<exclude name="**/AllTests*"/>
<include name="**/*Test.class" />
</fileset>
</batchtest>-->
</junit>
</target>
目錄$ {} libtest.hom包含的junit-4.8.1.jar和hamcrest核-1.1.jar。
當我啓動以下命令:ant單元測試中,MyTest的執行失敗,出現以下的輸出:
unit-test:
[junit] Testsuite: com.test.MyTest
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
[junit]
[junit] Null Test: Caused an ERROR
[junit] com.test.MyTest
[junit] java.lang.ClassNotFoundException: com.test.MyTest
[junit] at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
[junit] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
[junit] at java.lang.Class.forName0(Native Method)
[junit] at java.lang.Class.forName(Class.java:247)
[junit]
[junit]
這很奇怪,因爲com.test.MyTest遠在classpath中指出的我的任務junit在ant腳本中。有人會想出解決這個問題嗎?
感謝您的幫助。
Sylvain。
謝謝您的回答。它解決了我的問題。我忘了將測試類放在我的junit ant任務的類路徑中。 – sylsau
此解決方案在我的情況下運行到另一個錯誤:java.util.zip.ZipException;看看這裏:http://stackoverflow.com/questions/8655193/not-able-to-run-test-through-ant在Mayoares的答案。上面的標籤改成 幫助我糾正了這個錯誤。 –
srnka