2010-11-26 2 views
3

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

Мой 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) 

При включении флага отладки, я получаю следующий след от муравья:

(...) 
[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 находится на пути к классу, и o Эти классы, такие как Test.class, собираются, поэтому почему я получаю сообщение «не могу найти TestClass.class»?

Я попытался добавить junit.jar к муравьиным классам в GUI 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.

Заранее благодарен!

ответ

2

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

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

+0

OMG, я мог плакать. Два дня для ЭТО !? Это была именно проблема. Я не мог понять, как добавить только файлы классов, поэтому я включил задачу и добавил файл jar в путь к классам. – user391549 2010-11-26 12:56:40

Смежные вопросы