Testing 如何测试作为OSGi捆绑包实现的服务契约?

Testing 如何测试作为OSGi捆绑包实现的服务契约?,testing,osgi,Testing,Osgi,我们正在向SOA过渡 我们当前的目标是尝试并确保更多的应用程序被开发为“服务”(主要是为了提高功能的可视性、重用和消除风险变化)。其中一些服务将作为web服务公开,但许多(可能是大多数)将不会公开,并且仅用于“内部”用途,以帮助获得SOA的一些好处 对于那些“内部”服务,我们目前打算将它们实现为OSGi捆绑包;然而,我们正在努力理解如何最好地测试它们。我们的目标是使当前的系统测试团队能够测试所有类型的服务,我们一直在研究SoapUI和SOA测试等工具;然而,越来越清楚的是,在使用这些工具测试作为

我们正在向SOA过渡

我们当前的目标是尝试并确保更多的应用程序被开发为“服务”(主要是为了提高功能的可视性、重用和消除风险变化)。其中一些服务将作为web服务公开,但许多(可能是大多数)将不会公开,并且仅用于“内部”用途,以帮助获得SOA的一些好处

对于那些“内部”服务,我们目前打算将它们实现为OSGi捆绑包;然而,我们正在努力理解如何最好地测试它们。我们的目标是使当前的系统测试团队能够测试所有类型的服务,我们一直在研究SoapUI和SOA测试等工具;然而,越来越清楚的是,在使用这些工具测试作为OSGi捆绑包实现的服务时,我们可能会面临一些挑战;并确实要求测试团队这样做

因此,我们正在寻找一些关于如何最好地测试我们的功能方面的建议,这些功能设计为充当“服务”,但实现为OSGi捆绑包而不是web服务


人们会推荐什么工具,这是一种传统上由开发人员在单元测试期间进行的测试,还是可以由技术水平较低的测试人员进行,并遵循测试接口(即输入、处理、输出)的相同基本原则?

从理论上讲,您可以使用远程服务管理实现(如或)在测试期间向外部公开内部服务,以使用外部系统测试工具访问它们

不过,我不建议让外部团队测试您的OSGi服务。最好使用集成测试工具(如)在您自己的构建中测试服务。它允许定义要安装的捆绑包和其他配置。然后,它会用您的设置启动OSGi框架,并对其运行修改后的junit测试。优点是这样的测试是非常现实的,而且仍然非常简单。 请参阅此处了解或中的一些pax考试测试。
第一个示例使用pax考试分叉容器进行非常快速的测试(我同意Christian的观点:测试捆绑包是构建捆绑包的开发人员的任务。有很多测试工具,但它们都涉及将捆绑包放入真正的OSGi框架中,然后对其进行处理。Christian提到PAX考试……Gradle的bnd也有一个用于此目的的测试运行程序,可以与Bndtools IDE一起使用。)。