2016-06-22 5 views
1

pax exam을 사용하여 원격 서비스를 테스트하고 있습니다.pax 시험에서 두 번째 OSGi 컨테이너를 시작하고 종료하는 방법

이렇게하려면 두 개의 컨테이너를 시작해야합니다. 하나는 내 테스트를 실행하는 로컬 테스트이고 다른 테스트는 Aries RSA 및 zookeeper입니다.

외부 컨테이너를 @Configuration 메서드에서 호출하여 관리 할 수있었습니다. 이것이 거기에 속한 것 같지 않지만 OSGi 밖에서 코드가 실행되는 곳에서 내가 찾은 유일한 곳이었습니다.

https://github.com/apache/aries-rsa/blob/master/itests/felix/src/test/java/org/apache/aries/rsa/itests/felix/tcp/TestRoundTrip.java#L47-L51가 지금은 테스트가 그때 용기를 종료 할 수있는 종료 할 때 호출되는 두 번째 훅을 필요 참조하십시오. @After 또는 @AfterClass는 OSGi에서 실행되는 것처럼 보이지 않습니다.

@Configuration에 추가하면 외부 컨테이너를 시작할 때 더 깨끗한 방법으로 기쁠 것입니다.

답변

3

지금 해결책을 찾았지만 여전히 상자 밖에서 작동하는 무언가가 있기를 바랍니다.

새로운 Pax 러너 TwoContainerPaxExam을 만들었습니다. @ServerConfiguration 주석이 붙은 두 번째 구성을 찾고, 테스트 전에 시작한 후 종료합니다.

그래서 내 검사는 다음과 같습니다. TestRoundTrip. 상자 밖의 것이 없다면이 해결책을 pax 시험에 넣으려고 노력할 것입니다.