java – 如何添加本地库路径到JUNIT任务?
发布时间:2020-12-14 19:28:18 所属栏目:Java 来源:网络整理
导读:我有一个 Java项目,使用 this driver进行串行通信.驱动程序使用Windows下的dll来创建串行端口. 该项目包含几个JUnit测试,使用“运行为 – JUnit测试”成功完成.但是,当运行ant(和不引用本机库通过的测试)时,引用本机库的测试失败. 到目前为止,我最好的猜测是
我有一个
Java项目,使用
this driver进行串行通信.驱动程序使用Windows下的dll来创建串行端口.
该项目包含几个JUnit测试,使用“运行为 – > JUnit测试”成功完成.但是,当运行ant(和不引用本机库通过的测试)时,引用本机库的测试失败. 到目前为止,我最好的猜测是将包含本机库的目录添加到java.library.path中,但是我没有通过build.xml文件成功. 有人可以告诉(干净)解决方案吗? 这是我的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> 这里是测试报告的一部分(以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) 解决方法
junit task in Ant,允许设置系统属性,就像其他一些任务一样.您需要在sysproperty嵌套元素中指定java.library.path值:
<junit fork="yes" printsummary="yes" haltonfailure="yes"> <test name="${test.class.name}" todir="${test.reports}" /> <formatter type="xml" /> <classpath refid="test.classpath" /> <sysproperty key="java.library.path" value="put your library path here"/> </junit> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – 域驱动设计中的实体
- java – 在Spring中将PersistenceException转换为DataAcces
- org.apache.catalina.LifecycleException: Failed to start
- web容器中实例化spring相关配置解析
- 为什么导入javax.servlet时出错.*?
- 我收到错误java.text.ParseException:Unparseable date
- java – 使用Date参数时的Spring Data JPA日期“之间”查询
- ADO.NET实体框架中的乐观并发
- java – 无法从上下文将请求字符编码设置为UTF-8
- 详解 Java Maximum redirects (100) exceeded