나는 잠시 동안 내 머리를 긁적 봤다. (무리를 챙겨서 다른 유용한 SO 게시물을 보았다.) Java 프로그램은 Logic
과 Tests
의 두 파일로 구성되어 있습니다. Tests
에는 약 100 회의 JUnit 테스트가 포함되어 있으며이 테스트에서는 javac *.java
을 호출하고이어서 java org.junit.runner.JUnitCore Tests
을 호출하여 100 % 성공률을 얻었습니다. 그러나 나는 실행할 때 내와 build.xml
간단한 ant -verbose test
, 나는 다음과 같은 출력을 얻을 (위해 나는 모든이에 새로 온 이후 출력을 따르지에서) :JUnit의 새로운 기능, ClassNotFoundException
[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
, junit-4.10.jar
, mysql-connector-java-5.1.18-bin.jar
, build.xml
및 인용 된 .properties
파일은 모두 동일한 폴더에 있습니다. Java 코드는 외부 파일을 참조하지만이 특정 문제와 관련이 없습니다. 나는 classpath가이 이슈의 원인이 될 수 있는지 알지 못한다. (나는 현재 내가 가지고있는 것이 작동하지 않는다고 확신한다.)
감사합니다.