首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用JConnect对Spring应用程序进行单元测试

用JConnect对Spring应用程序进行单元测试
EN

Stack Overflow用户
提问于 2013-03-13 00:34:35
回答 2查看 962关注 0票数 0

我有一个问题,我的尝试单元测试我的DAO在一个网络应用程序。我已经将我的spring配置都设置为使用Sybase dataSource JDBC驱动程序创建JConnect bean。我的问题是,我只能在作为webapp运行应用程序时创建我的bean。

在尝试运行单元测试时,我收到以下消息:

java.lang.ClassNotFoundException: com.sybase.jdbc3.jdbc.SybDriver

为了进一步解释,下面是我的目录结构:

代码语言:javascript
复制
src
   main
     -java
       - ...java files etc
    - resources
        -applicationContext.xml
        -other config files
    - webapp
        -WEB-INF
           -jconn3.jar   <---- putting it here works, but test doesn't have a WEB-INF folder!
   -test
     -java
     -resources

那么,如何允许在运行时对我的单元测试进行识别呢?我尝试过将它放在主/资源目录中,但是这会导致失败,不管我是否将它作为webapp运行。我可以看到,在构建时,jcont3.jar被复制到目标/类目录中,那么为什么在运行时找不到jar呢?让它工作的唯一方法似乎是将它保存在WEB目录中,但是接下来我如何对依赖于它的DAO进行单元测试。

我正在使用Spring和maven。注意,我不能添加maven依赖项,因为jar不在存储库中,我也没有将其添加到远程回购中的选项。

总之,我需要让jar在我的构建路径上运行webapp和单元测试,因为两者都需要用于DAO的jar。当把它放在“资源”文件夹中似乎没有帮助时,我该如何做到这一点。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-13 00:49:08

您必须在测试的执行类路径中放置jcont3.jar。如果您正在使用maven,那么您必须在pom中添加对应于您的驱动程序的依赖项。由于中心Maven中没有Sybase JDBC驱动程序,因此必须使用如下命令将其上载到本地存储库:

安装第三方罐子指南

代码语言:javascript
复制
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
    -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

一旦您这样做了,您就可以向这个jar添加一个依赖项,就像对maven中心的任何其他jar一样。

代码语言:javascript
复制
<dependency>
    <groupId>group-id></groupId>
    <artifactId>artifact-id</artifactId>
    <version>version</version>
</dependency>

从那时起,Sybase驱动程序jar将包含在测试执行类路径中.

您还在将jar添加到WEB目录,而不需要添加jar。Maven非常聪明,可以从依赖项中推断出需要进入war内部的jar文件,这样就可以将其从WEB位置删除。不要担心,当您执行mvn包时,带驱动程序的jar将在war文件中结束。

票数 0
EN

Stack Overflow用户

发布于 2013-03-13 01:27:12

如果没有Maven和标准eclipse,您需要确保它在构建路径中并被标记为库,然后eclipse现在将做什么

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15374931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档