Задаче Ant JUnit не удалось найти junit / framework / TestCase.class - PullRequest
3 голосов
/ 26 ноября 2010

Я пытаюсь запустить задачу JUnit 4.8.1 в Ant 1.7.1. Моя IDE - Eclipse Helios. Я уже 2 дня бьюсь головой об кирпичную стену и не могу этого понять. Я уверен, что при прочтении других постов это проблема classpath, но я не вижу, в чем я ошибаюсь.

Мой набор тестов JUnit4 определен следующим образом:

package mypackage.tests;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

/**
 * JUnit 4 Test Suite for the entire <code>mypackage</code>
 * package
 */
@RunWith(Suite.class)
@Suite.SuiteClasses({ mypackage.tests.controller.AllTests.class })
public class AllTests {
}

... достаточно просто, но тест завершается неудачей с ClassNotFoundException

java.lang.ClassNotFoundException: mypackage.tests.AllTests
 at java.net.URLClassLoader$1.run(Unknown Source)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at java.lang.Class.forName0(Native Method)
 at java.lang.Class.forName(Unknown Source)

Когда я включаю флаг отладки, я получаю следующую трассировку от Ant:

(...)
[junit] Couldn't find junit/framework/TestCase.class
[junit] Found C:\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-launcher.jar
[junit] Found C:\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant.jar
[junit] Found C:\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-junit.jar
fileset: Setup scanner in dir C:\eclipse\plugins with patternSet{ includes: [org.junit_4.8.1.v4_8_1_v20100427-1100/junit.jar] excludes: [] }
Finding class junit.framework.Test
Loaded from C:\eclipse\plugins\org.junit_4.8.1.v4_8_1_v20100427-1100\junit.jar junit/framework/Test.class
(...)

Очевидно, что JUnit jar находится на пути к классам, и другие классы, такие как Test.class, выбираются, так почему я получаю сообщение «not find TestClass.class»?

Я попытался добавить JUnit.jar в путь к муравьям в графическом интерфейсе Eclipse, и это имеет следующий эффект:

(...)
[junit] Found C:\eclipse\plugins\org.junit_4.8.1.v4_8_1_v20100427-1100\junit.jar
[junit] Found C:\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-launcher.jar
[junit] Found C:\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant.jar
[junit] Found C:\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-junit.jar
(...)
[junit] WARNING: multiple versions of ant detected in path for junit 
[junit]          jar:file:C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant.jar!/org/apache/tools/ant/Project.class
[junit]      and jar:file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant.jar!/org/apache/tools/ant/Project.class
(...)

Может кто-нибудь, пожалуйста, пожалуйста, помогите мне заставить это работать!

О, я почти забыл ... набор тестов прекрасно работает в Eclipse.

Заранее спасибо!

1 Ответ

2 голосов
/ 26 ноября 2010

Ошибка вызвана тем, что ваши тестовые классы не могут быть загружены.

Вы положили пакет mypackage.tests.controller (то есть папку (-и), содержащую файлы классов или архив jar)на пути к классу вашего звонка на джунит?Это можно сделать с помощью вложенной структуры classpath.(http://ant.apache.org/manual/Tasks/junit.html).

...