2014-02-19 1 views
1

PAX 시험을 사용하여 번들에 대한 테스트를 설정하려고합니다.PAX 시험 및 구성 관리자

Configuration으로 주석 된 메소드에서 테스트를 실행하기 전에로드해야하는 여러 번들을 설정합니다. 그러나 테스트중인 번들은 구성 관리 서비스를 통해 구성을 제공 할 것으로 예상합니다.

Eclipse 외부에서는 Config Admin 및 File Install과 함께 Apache Felix 프레임 워크를 사용하여 번들 + 구성이 자동으로로드됩니다.

PAX 시험 구성 정보를 제공하는 방법은 무엇입니까?

감사합니다, 미카엘

답변

2

이 매우 간단합니다, 단지 구성 관리 서비스가 테스트에 주입 할 수 있도록하고 설정 방법에를 구성 않습니다. 이에 대한 작업 샘플은 pax 웹 프로젝트에서 찾을 수 있습니다. 이것 좀 봐 link

+0

안녕하세요 @AchimNierbeck을,이 예제는 좋은 것 같습니다 저에게 많은 도움이,하지만 난 개발 한 서비스 (DS를 사용하여) 주입을 원하는 경우 해당 서비스는 파일에서 구성됩니다 PAX-Exam에서 ConfigurationAdmin을 사용하여 구성을 제공하는 방법은 무엇입니까? –

0

불행히도 이클립스는 maven repo에 번들을 게시하지 마십시오. 당신이 할 수있는 일은 maven central repo에서 그것들을 검색하는 것입니다. 또는 Eclipse IDE와 함께 제공되는 번들을 local maven 저장소에 설치하지 않았다면 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")); 
}