Тест Junit, интегрированный с Ant, не прошел с ClassNotFoundException
У меня есть тесты JUnit в моем проекте, которые работают правильно с Eclipse.
Итак, теперь я пытаюсь интегрировать эти тесты с задачей муравья. Для этого я делаю следующий муравьиный скрипт:<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 and hamcrest-core-1.1.кувшин.
Когда я запускаю следующую команду: Ant unit-test, выполнение 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.тест.Мой тест находится хорошо в classpath, который указал для моих задач JUnit в Ant-скрипт. Кому-то придет в голову и идея решить эту проблему ?
Спасибо за помощь.
Сильвен.
1 ответ:
Каталог
${testclasses.home}
нигде не находится на пути к классу для задачи<junit>
.Я думаю, что здесь живет файл класса для
com.test.MyTest
.Здесь модифицированная цель юнит-теста:
<target name="unit-test" depends="compile-tests"> <junit printsummary="false" fork="off" haltonfailure="true"> <classpath> <path refid="classpath-test"/> <fileset dir="${testclasses.home}"/> </classpath> <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>