मेरे पास एक जावा प्रोजेक्ट है जो धारावाहिक संचार के लिए this driver का उपयोग करता है। सीरियल पोर्ट बनाने के लिए ड्राइवर विंडोज के तहत एक डीएल का उपयोग करता है।जूनिट कार्य में मूल लाइब्रेरी पथ कैसे जोड़ें?
इस परियोजना में कई जुनीट परीक्षण शामिल हैं जो "रन के रूप में -> जुनीट टेस्ट" का सफलतापूर्वक उपयोग कर रहे हैं। हालांकि, मूल लाइब्रेरी का संदर्भ देने वाले परीक्षण विफल होने पर विफल होते हैं (और परीक्षण जो देशी लाइब्रेरी पास का संदर्भ नहीं देते हैं)।
मेरा सबसे अच्छा अनुमान अब तक उस निर्देशिका को जोड़ना है जिसमें मूल पुस्तकालय java.library.path में है, लेकिन मैं build.xml फ़ाइल के माध्यम से ऐसा करने में सफल नहीं हुआ हूं।
क्या कोई व्यक्ति (साफ) समाधान बता सकता है? यहाँ
<path id="compile.classpath">
<fileset dir="${lib}">
<include name="**/*.jar"/>
</fileset>
<fileset dir="${junit_home}">
<include name="**/*.jar"/>
</fileset>
</path>
<path id="test.classpath">
<pathelement location="${bin}" />
<fileset dir="${lib}">
<include name="**/*.jar"/>
</fileset>
<fileset dir="${junit_home}">
<include name="**/*.jar"/>
</fileset>
</path>
<target name="compile">
<mkdir dir="${bin}" />
<echo Message="Compiling src folder..." />
<javac includeantruntime="no" classpathref="compile.classpath" srcdir="${src}" destdir="${bin}" />
<echo Message="Compiling test folder..." />
<javac includeantruntime="no" classpathref="compile.classpath" srcdir="${test}" destdir="${bin}" />
</target>
<target name="test">
<mkdir dir="${test.reports}" />
<junit fork="yes" printsummary="yes" haltonfailure="yes">
<test name="${test.class.name}" todir="${test.reports}" />
<formatter type="xml" />
<classpath refid="test.classpath" />
</junit>
</target>
और (एक्सएमएल में) परीक्षण रिपोर्ट का एक हिस्सा है:
यहाँ मेरी build.xml है
<testcase classname="nl.timo.comport.test.buildservertests.ComportFactoryTest" name="testGetInstance" time="0.0" />
<testcase classname="nl.timo.comport.test.buildservertests.ComportFactoryTest" name="testCreateDefaultComport" time="0.016">
<error message="giovynet.nativelink.SerialPort.getStateSerialPortC(Ljava/lang/String;)Ljava/lang/String;" type="java.lang.UnsatisfiedLinkError">java.lang.UnsatisfiedLinkError: giovynet.nativelink.SerialPort.getStateSerialPortC(Ljava/lang/String;)Ljava/lang/String;
at giovynet.nativelink.SerialPort.getStateSerialPortC(Native Method)
at giovynet.nativelink.SerialPort.getFreeSerialPort(SerialPort.java:50)
at package.comport.GioComport.getFreeSerialPorts(Unknown Source)
at package.comport.GioComport.findDevice(Unknown Source)
at package.comport.GioComport.<init>(Unknown Source)
at package.comport.ComportFactory.createNewPort(Unknown Source)
at package.comport.ComportFactory.createComport(Unknown Source)
at package.comport.test.buildservertests.ComportFactoryTest.testCreateDefaultComport(Unknown Source)
</error>
</testcase>
<testcase classname="nl.timo.comport.test.buildservertests.ComportFactoryTest" name="testCreateComportWithWrongSettings" time="0.0">
<error message="giovynet.nativelink.SerialPort.getStateSerialPortC(Ljava/lang/String;)Ljava/lang/String;" type="java.lang.UnsatisfiedLinkError">java.lang.UnsatisfiedLinkError: giovynet.nativelink.SerialPort.getStateSerialPortC(Ljava/lang/String;)Ljava/lang/String;
at giovynet.nativelink.SerialPort.getStateSerialPortC(Native Method)
at giovynet.nativelink.SerialPort.getFreeSerialPort(SerialPort.java:50)
at package.comport.GioComport.getFreeSerialPorts(Unknown Source)
at package.comport.GioComport.findDevice(Unknown Source)
at package.comport.GioComport.<init>(Unknown Source)
at package.comport.ComportFactory.createNewPort(Unknown Source)
at package.comport.ComportFactory.createComport(Unknown Source)
at package.comport.test.buildservertests.ComportFactoryTest.testCreateComportWithWrongSettings(Unknown Source)
</error>
</testcase>
<system-out><![CDATA[]]></system-out>
<system-err><![CDATA[java.lang.UnsatisfiedLinkError: no libSerialPort in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1738)
उत्तर के लिए धन्यवाद! यह पथ को बदल देता है, है ना? मैं ** ** मेरी निर्देशिका को पथ में कैसे जोड़ सकता हूं (पथ = पथ + नया डीआईआर;)) – Timo
@ टिमो, आपको [pathconvert] (http://ant.apache.org/manual/Tasks/pathconvert मिल सकता है) .html) कार्य उस उद्देश्य के लिए उपयोगी होना चाहिए। [यह SO सवाल] देखें (http://stackoverflow.com/questions/2140637/how-do-i-build-a-list-of-file-names), साथ ही साथ। –
' 'क्या यह भी काम करेगा? –
Timo