2010-11-26 17 views
3

Ant 1.7.1で実行するJUnit 4.8.1タスクを取得しようとしています。私のIDEはEclipse Heliosです。私は今、2日間レンガの壁に頭を打っていて、これを理解することはできません。私はクラスパスの問題を他の投稿で読むことは確信していますが、どこが間違っているのかわかりません。Ant JUnitタスクが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) 

で失敗します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はクラスパスにあり、o Test.classなどのクラスが取得されているので、なぜ「TestClass.classが見つかりませんでした」というメッセージが表示されますか?

私は、EclipseのGUIでantクラスパスにjunit.jarをを追加しようとしたが、これは次のような効果があります。

(...) 
[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、私は泣くことができました。それの2日間!?これはまさに問題でした。私はクラスファイルだけを追加する方法を理解できなかったので、タスクをインクルードし、jarファイルをクラスパスに追加しました。 – user391549

関連する問題