7

私はしばらくの間これに頭を悩ませてきました(グーグルでたくさん、他の関連するSOの投稿を調べても無駄でした)。2つのファイルで構成されるJavaプログラムがLogicありTestsます。約100個のJUnitテストが含まれており、その後に。Testsを呼び出すことで、上記のテストで100%の成功率が得られました。ただし、単純なもので実行すると(これはすべて初めてなので、出力を追跡するために)、次の出力が得られます。javac *.javajava org.junit.runner.JUnitCore Testsbuild.xmlant -verbose test

[junit] Testsuite: Tests
[junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
[junit] 
[junit] Null Test:  Caused an ERROR
[junit] Tests
[junit] java.lang.ClassNotFoundException: Tests
[junit]     at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
[junit]     at java.lang.Class.forName0(Native Method)
[junit]     at java.lang.Class.forName(Class.java:247)
[junit] 
[junit] 
[junit] Test Tests FAILED

BUILD SUCCESSFUL

build.xmlは次のとおりです。

<project name="ETL_Automation" default="test" basedir=".">

<path id="classpath.base">
</path>

<path id="classpath.test">
  <pathelement location="${basedir}/mysql-connector-java-5.1.18-bin.jar" />
  <pathelement location="${basedir}/junit-4.10.jar"/>
  <path refid="classpath.base" />
</path>

<target name="compile">
  <javac srcdir="${basedir}">
    <classpath refid="classpath.test"/>
  </javac>
</target>

<target name="test" depends="compile">
  <junit fork="no">
    <classpath refid="classpath.test" />
    <formatter type="brief" usefile="false" />
    <batchtest>
      <fileset dir="${basedir}/" includes="Tests.class" />
    </batchtest>
  </junit>
</target>

<target name="clean" depends="test">
  <delete>
    <fileset dir="${basedir}" includes="*.class"/>
  </delete>
</target>

ディレクトリ構造は非常に単純です。Tests.java、、、、、、および参照ファイルはすべて同じフォルダにありLogic.javaます。Javaコードは外部ファイルを参照しますが、これらはこの特定の問題とは関係ありません。クラスパスがこの問題の原因である可能性があるかどうかはわかりません(現在持っているものが機能しないとかなり確信しているため)。junit-4.10.jarmysql-connector-java-5.1.18-bin.jarbuild.xml.properties

ありがとう!

4

1 に答える 1

5

(セットアップにある)クラスパスTests.classにディレクトリを追加する必要がありますclasspath.tests${basedir}

試す:

<path id="classpath.test"> 
  <pathelement location="${basedir}/mysql-connector-java-5.1.18-bin.jar" /> 
  <pathelement location="${basedir}/junit-4.10.jar"/> 
  <pathelement location="${basedir}" /> 
  <path refid="classpath.base" /> 
</path>
于 2012-05-18T19:34:11.583 に答える