【发布时间】:2016-02-06 08:09:02
【问题描述】:
我有几个使用 Eclipse Tycho 构建的 OSGi 捆绑包。所有代码依赖项都以清单优先方式进行管理。
现在我想开发一些纯 JUnit-Tests 来测试包内部的功能。这些测试不需要 OSGi 容器即可执行,但它们确实需要 Mockito。
由于 Mockito 显然只在运行此非 OSGi 测试时才需要,而不是在包本身的执行期间,因此将依赖项添加到 MANIFEST.MF 文件感觉是错误的。
我目前的方法是添加一个包含 mockito.jar 的项目/lib 文件夹,并手动将此 jar 添加到他的类路径中。这适用于本地 Eclipse 执行,目前还可以。
问题是,每个同事也需要将 jar 添加到类路径中,因为 .classpath 文件显然没有被签入。另外,我猜最终执行测试时会出现问题,例如由于缺少类路径条目而在构建服务器上。
所以我的问题是:如何将依赖项添加到 Mockito 以使每个同事都毫不费力地工作,并且不会在包执行期间造成任何问题?
我可以将它作为可选依赖项添加到 MANIFEST.MF 文件中,但如上所述,感觉这不是正确的解决方案。
我可以将 mockito 依赖添加为正常的 pom-first 依赖,范围为 test 还是会导致与正常的 manifest-first 方法发生冲突?
我还找到了maven-eclipse-plugin,它提供了classpathContainers 配置选项,但我没有找到类似的选项来将库添加到类路径。
测试位于包本身的 src/test/java 文件夹中。
考虑到我在技术上不需要 Tycho 来执行这些测试,向使用 eclipse Tycho 构建的项目添加仅测试依赖项的最佳方法是什么?
【问题讨论】: