OSGi Testing目前,作为大学最后一年项目的一部分,我正在开发一个新的版本控制系统。 这个想法是使其具有高度的适应性和可插拔性。 我们正在使用OSGi框架(Equinox实现)来管理我们的插件。 我的问题是我找不到用于测试OSGi捆绑包的简单易用的方法。 当前,我必须使用Maven构建捆绑软件,然后执行测试工具。 我正在寻找类似Eclipse的JUnit测试运行程序之类的东西,因为它可以节省大量时间。 有没有一种快速简便的方法来测试OSGi捆绑软件? 编辑:我不需要测试Eclipse插件或GUI组件,仅需要OSGi捆绑包即可。 EDIT2:是否有一些支持JUnit4的框架?
最近,您应该看看Pax考试: 这是OPS4J当前与测试有关的工作。 以下是一些尚未提及的工具:
在OPS4J(ops4j.org)上有一个专用的开源OSGi测试框架,称为Pax Drone。 您可能想看看Pax Drone([http://wiki.ops4j.org/confluence/x/KABo]),它使您可以在测试中使用所有的Felix版本以及Equinox和Knopflerfish。
干杯, Spring Dynamic Modules对测试OSGi捆绑包提供了出色的支持。 Eclipse具有启动配置类型,可用于在Eclipse(即OSGi)应用程序的上下文中运行JUnit测试: http://help.eclipse.org/stable/index.jsp?topic=/org.eclipse.pde.doc.user/guide/tools/launchers/junit_launcher.htm 我认为我们遇到了同样的问题,并制定了自己的解决方案。解决方案有不同部分:
使用这些工具,您可以执行TDD,并且书面测试也始终在maven集成阶段内运行。建议将eclipse与m2e和maven-bundle-plugin一起使用,因为在这种情况下,只要在源中保存类,就会重新生成target / classes / META-INF / MANIFEST.MF。到部署程序窗口。您开发的OSGi捆绑包不必具有任何特殊功能(例如,作为eclipse插件之类的东西)。 整个解决方案是OpenSource。您可以在http://cookbook.everit.org上找到教程。 ProSyst测试执行环境是OSGi捆绑软件的有用测试工具。它还支持JUnit测试作为可能的测试模型之一。 对于单元测试,请使用EasyMock框架或为测试所需的接口创建自己的实现。 条约是一个合同(测试)框架,虽然学术性强,但也有一些不错的主意。有论文发表在此上,并且人们正在努力对其进行改进。 如果您需要测试GUI组件,我发现SWTBot可以完成工作。 我想有很多方法可以测试OSGi组件。测试的一种方法是使用Robot Framework。我所做的是使用Robot Framework进行测试,并在OSGi中安装了远程库,或者使它们通过套接字与OSGi-test组件进行通信,而Robot将与这些模块进行通信并通过它们运行测试。 因此,基本上,您的OSGi模块应该具有执行某些操作并产生某些输出的接口。因此,在我的设置中,我有一个测试组件,可以对实际的OSGi组件进行服务调用,然后会有一个侦听服务,可以捕获事件/服务调用(由被测模块进行),并且这些结果可以被机器人问到。因此,基本上,通过这种方式,您可以将大型系统拆分为多个小组件,并使该系统在生产/生产环境(如环境)中运行,并在组件级别上对其进行自动测试,或者对某些实际组件进行统一测试。 在过去的几年中,Tycho(一种用于OSGi的基于Maven的新构建系统)在Eclipse Foundation中变得相当流行。该框架还包括使用Maven Surefire在单独的测试床上测试OSGi捆绑软件的方法... bnd-testing-maven-plugin怎么样?
它允许在诸如Felix或Equinox之类的运行容器中运行JUnit。 https://github.com/bndtools/bnd/tree/master/maven/bnd-testing-maven-plugin 还可以查看Maven的有效原型。这将为您构建项目或添加测试提供一个良好的起点。 https://github.com/effectiveosgi |