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