【问题标题】:Junit test with osgi blueprint (apache aries or eclipse gemini)使用 osgi 蓝图进行 Junit 测试(apache aries 或 eclipse Gemini)
【发布时间】:2013-06-14 07:11:40
【问题描述】:

我真的找不到 junit 测试蓝图的方法。使用 Spring DM(这个死掉的项目)很容易用 junit 和一些模拟测试相同的 spring bean。在蓝图中(无论是白羊座还是双子座)都不像 SpringJUnit4ClassRunner。

Pax 考试对于单元测试来说很复杂,并且不会产生一些结构测试结果。

你有什么想法,如何 junit 测试蓝图?

【问题讨论】:

    标签: junit osgi blueprint aries gemini


    【解决方案1】:

    我写了一个testrunner bundle,如果存在 osgtest=junit4 服务属性,它会将每个服务作为 JUnit 测试运行。它使用服务的接口来搜索注解。

    我还写了eosgi-maven-plugin,它可以在 maven 的集成测试阶段启动一个 OSGi 环境,并在 testrunner 包的帮助下运行测试。

    使用这些工具,我的目标是真正做到技术独立。唯一的要求是应用程序必须在 OSGi 容器上运行,并且测试必须是 OSGi 服务。捆绑包是项目的 Maven 依赖项。

    有一个step-by-step guide。它不是最新的,插件的名称已从 maven-eosgi-plugin 更改为 eosgi-maven-plugin(正如 maven 在警告中建议的那样)

    我希望这是你要找的那个:)

    【讨论】:

    • 我将尝试使用 karaf osgi 应用程序
    • 您可能想要为 karaf 创建一个自定义 zip 包,以便与 maven 插件一起使用。可悲的是,这部分还没有很好的记录。但是,如果您检查默认的 zip 包(使用 Equinox),您将看到它是如何工作的。 zip 的主文件中只有一个 XML 文件,其他所有内容都来自 XML 的配置(启动命令、停止命令……)。如果您有任何问题,请随时提出。
    【解决方案2】:

    就我而言,pax-exam 仍然是 osgi 的第一测试框架。 当然还有蓝图。您还会发现一些用于使用 Karaf 进行测试的示例。 https://ops4j1.jira.com/wiki/display/PAXEXAM3/Pax+Exam

    【讨论】:

    • Pax 考试对于单元测试来说很复杂,并且不会产生一些结构测试结果。我知道,这是集成测试的最佳框架,但不适用于 junit 测试!
    • 不,不是,实际上,如果您尝试使用 Karaf 运行,Pax-Exam 3.1.0 中有可用的 karaf 容器(现在仍然是快照)。这将帮助您进行“最少的”测试设置,因为很多都是开箱即用的。
    • 除了Pax-Exam还有PojoSR,但是如果你需要测试一些更复杂的场景,它会因为蓝图而失败,例如如果你使用JPA,它就不再工作了......
    猜你喜欢
    • 2012-02-28
    • 2018-02-05
    • 1970-01-01
    • 2012-02-05
    • 2016-11-16
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    相关资源
    最近更新 更多