首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Tycho项目中的非OSGi JUnit测试添加仅测试依赖项

为Tycho项目中的非OSGi JUnit测试添加仅测试依赖项
EN

Stack Overflow用户
提问于 2015-11-05 21:09:28
回答 2查看 496关注 0票数 4

我有几个使用Eclipse Tycho构建的OSGi-bundle。所有代码依赖项都是托管清单优先的。

现在,我想开发一些纯JUnit-Tests,以便测试捆绑包内部的功能。这些测试不需要OSGi容器就可以执行,但它们确实需要Mockito。

由于Mockito显然只在运行非OSGi测试时才需要,而不是在包本身的执行过程中使用,因此将依赖项添加到MANIFEST.MF文件感觉是错误的。

我目前的方法是添加一个包含mockito.jar的项目/库文件夹,并手动将此jar添加到他的类路径中。这适用于本地eclipse执行,目前还不错。

问题是,每个同事也需要将jar添加到类路径中,因为.classpath-file显然没有签入。此外,我猜测当测试最终将在构建服务器上执行时,由于缺少类路径条目,将会出现问题。

所以我的问题是:我如何才能将依赖项添加到Mockito中,让每个同事都能毫不费力地工作,并且在捆绑包执行期间不会造成任何问题?

我可以将它作为可选的依赖项添加到MANIFEST.MF文件中,但如上所述,它不像是正确的解决方案。

我可以添加mockito-依赖项作为具有作用域test的普通pom-first依赖项吗,或者这会导致与正常的清单优先方法冲突吗?

我还找到了提供classpathContainers配置选项的maven-eclipse-plugin,但没有找到将库添加到类路径的类似选项。

测试位于包本身的src/test/java文件夹中。

如果我在技术上不需要Tycho来执行这些测试,那么向使用eclipse Tycho构建的项目中添加仅测试依赖项的最佳方式是什么?

EN

回答 2

Stack Overflow用户

发布于 2015-11-16 19:44:41

如果您可以使用完全由Maven依赖项组成的类路径(例如,到Mockito)来运行您的测试,那么您还可以为这些测试创建一个带有jar打包的模块。在该模块中,您还将向包中添加一个依赖项,然后将其用作普通JAR。

在这种情况下,您失去的是传递依赖项的解析。然后,Maven将解析jar项目,并且Maven不知道OSGi包的Manifest依赖项。但是,根据您想要测试的内容的确切性质,这种方法可能仍然有效。

票数 1
EN

Stack Overflow用户

发布于 2015-11-05 22:12:43

通常,您会看到单独的包中的测试,以及它自己的清单和依赖项。这不是标准的OSGi结构,但它更适合Maven的结构。

例如,查看JDT-core git repository,您将看到单独的测试包。请注意,测试包有一个特殊的packaging-type eclipse-test-plugin

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

https://stackoverflow.com/questions/33545438

复制
相关文章

相似问题

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