2017-09-26 10 views
1

で固定。私は最近、ProguardとJUnitのバージョンを更新しました。コマンドを実行中に問題が発生しましたant jtest。私は現在持っているソフトウェアのエラーのJUnitを実行している:私はプロジェクトを継承していたbuild.xml

バージョン:

のJava 1.8.0_141

アリ1.10.1

ProGuardの:最近更新:最近、5.3.3にアップデートは、4.9

JUnitのでした4.12までは4.10

Eclipseでうまく動作しますが、Cygwinからコマンドを実行すると、このエラーが最後に表示されますE出力:

jtest: 
[mkdir] Created dir: C:\users\user\Documents\Workspace\project\build\test-data 
[echo] 
[junit] Testsuite: com.package.project.AllTests 
[junit] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.016 sec 
[junit] 
[junit] Testcase: initializationError took 0.002 sec 
[junit]  Caused an ERROR 
[junit] org/hamcrest/SelfDescribing 
[junit] java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing 
[junit]  at java.lang.ClassLoader.defineClass1(Native Method) 
[junit]  at java.lang.ClassLoader.defineClass(ClassLoader.java:763) 
[junit]  at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
[junit]  at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) 
[junit]  at java.net.URLClassLoader.access$100(URLClassLoader.java:73) 
[junit]  at java.net.URLClassLoader$1.run(URLClassLoader.java:368) 
[junit]  at java.net.URLClassLoader$1.run(URLClassLoader.java:362) 
[junit]  at java.security.AccessController.doPrivileged(Native Method) 
[junit]  at java.net.URLClassLoader.findClass(URLClassLoader.java:361) 
[junit]  at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
[junit]  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) 
[junit]  at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
[junit]  at java.lang.Class.getDeclaredConstructors0(Native Method) 
[junit]  at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) 
[junit]  at java.lang.Class.getConstructor0(Class.java:3075) 
[junit]  at java.lang.Class.getConstructor(Class.java:1825) 
[junit]  at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
[junit] Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing 
[junit]  at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
[junit]  at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
[junit]  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) 
[junit]  at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
[junit] 

は、ここで私はのbuild.xmlファイルに精通していないです、私のbuild.xmlファイル

です。このエラーは、JUnitにhamcrest-core-1.3.jarの依存関係があるためです。このコマンドを動作させるために、hamcrest-core-1.3.jarファイルでJUnitをどのように指すことができますか? build.xmlからやってもいいですか?

答えて

1

あなたjtestターゲットは、このクラスパスにjunitを実行します:

<path id="test.classpath"> 
    <pathelement location="${testclassesdir}" /> 
    <pathelement location="${builddir}/project.jar" /> 
    <path refid="project.libs" /> 
    <pathelement location="${toolsdir}/junit4.12/junit-4.12.jar" /> 
</path> 

あなたはそのクラスパスにhamcrestコア-1.3.jarを追加する必要があります。あなたは、そのディレクトリにあなたの${toolsdir}downloading hamcrest-core-1.3.jarにディレクトリ名「hamcrest1.3」を作成し、このpathelementを追加するtest.classpathを更新することにより、これを行うことができます。

<pathelement location="${toolsdir}/hamcrest1.3/hamcrest-core-1.3.jar" /> 
+0

ありがとうございます!ファイルのどこかにパスを追加しなければならないことは分かっていましたが、どこではわからなかったのです。お手伝いありがとう。 – Django

関連する問題