2012-05-18 15 views
5

के साथ मैं थोड़ी देर के लिए इस पर अपने सिर खरोंच कर रहा हूं (एक गुच्छा गुगल गया, अन्य संबंधित एसओ पदों का कोई फायदा नहीं हुआ)। मेरे पास एक जावा प्रोग्राम है जिसमें दो फाइलें, Logic और Tests शामिल हैं। Tests में लगभग सौ जुनीट परीक्षण शामिल हैं, और मुझे javac *.java पर कॉल करके java org.junit.runner.JUnitCore Tests पर कॉल करके परीक्षणों के साथ 100% सफलता दर प्राप्त हुई है। लेकिन जब मैं चलाने मेरी साथ 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, junit-4.10.jar, mysql-connector-java-5.1.18-bin.jar, build.xml, और एक संदर्भित .properties फ़ाइल सभी एक ही फ़ोल्डर में हैं। जावा कोड बाहरी फाइलों का संदर्भ देता है लेकिन वे इस विशेष मुद्दे से संबंधित नहीं हैं। मुझे नहीं पता कि क्लासपाथ इस मुद्दे का कारण हो सकता है (क्योंकि मुझे पूरा विश्वास है कि मेरे पास वर्तमान में क्या काम नहीं है)।

धन्यवाद!

उत्तर

3

आप classpath.tests classpath (जो आपके सेटअप में ${basedir} है) करने के लिए Tests.class साथ निर्देशिका जोड़ने की आवश्यकता होगी

प्रयास करें:

<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> 
संबंधित मुद्दे