我在尝试在 webapp 中对我的 DAO 进行单元测试时遇到问题。我的 spring 配置全部设置为使用 Sybase JConnect JDBC 驱动程序创建一个 dataSource bean。我的问题是,当我将应用程序作为 web 应用程序运行时,我只能创建我的 bean。
在尝试运行单元测试时,我收到:
java.lang.ClassNotFoundException:com.sybase.jdbc3.jdbc.SybDriver
为了进一步解释,这是我的目录结构:
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
那么如何让 jconn3.jar 在运行时为我的单元测试被识别呢?我已经尝试将它放在主/资源目录中,但这会导致失败,无论我是否将它作为 webapp 运行。我可以看到 jconn3.jar 在构建时被复制到 target/classes 目录,那么为什么在运行时找不到 jar?似乎让它工作的唯一方法是将它保存在 WEB-INF 目录中,但是我如何对依赖它的 DAO 进行单元测试。
我正在使用 Spring MVC 和 Maven。注意我无法添加 maven 依赖项,因为 jar 不在存储库中,我也没有将其添加到远程存储库的选项。
总而言之,我需要在我的构建路径上放置 jar 来运行 webapp 和进行单元测试,因为两者都需要用于 DAO 的 jar。将它放在资源文件夹中时如何实现这一点似乎没有帮助。