2014-02-19 52 views
1

我正在尝试为使用PAX考试的软件包进行测试。PAX考试和配置管理员

在注解为Configuration的方法中,我设置了运行测试之前必须加载的不同捆绑包。但是,被测试的捆绑包也期望通过配置管理服务来配置配置。

在Eclipse外部,我使用配置管理员和文件安装的Apache Felix框架,以便自动加载bundles +配置。

如何使用PAX考试提供配置信息?

谢谢,迈克尔 -

回答

2

这很简单,只要让配置管理服务注入到你的测验,并在你的设置方法配置。这个工作示例可以在pax web项目中找到。 看一看这个link

+0

你好@AchimNierbeck,这个例子似乎很好,帮了我很多,但如果我要注入服务(使用DS),我已经开发和服务需要从配置文件,然后如何在PAX-Exam中使用ConfigurationAdmin提供配置? –

0

不幸的是eclipse不会将它们的包发布到maven的回购库中。你可以做的是在maven central repo上搜索它们,或者如果你没有找到任何在你的本地maven仓库中安装随Eclipse IDE一起提供的必需包,然后在pax-exam配置中引用它们。 samething这样的:

protected static Option[] baseConfiguration(Option... extraOptions) { 
    Option[] options = options(
      cleanCaches(), 
      when(isEquinox()).useOptions(
        mavenBundle("org.lunifera.osgi", 
          "org.eclipse.osgi.services", 
          "3.4.0.v20131120-1328").startLevel(1), 
        mavenBundle("org.lunifera.osgi", 
          "org.eclipse.equinox.ds", 
          "1.4.200.v20131126-2331").startLevel(2), 
        mavenBundle("org.lunifera.osgi", 
          "org.eclipse.equinox.cm", 
          "1.1.0.v20131021-1936").startLevel(2), .... 

public static boolean isEquinox() { 
    return "equinox".equals(System.getProperty("pax.exam.framework")); 
} 

public static boolean isFelix() { 
    return "felix".equals(System.getProperty("pax.exam.framework")); 
}