2012-04-18 2 views
4

현재 아파치 카라프에서 실행되는 OSGi 애플리케이션을 테스트하는 최선의 방법을 조사 중입니다. 확실한 옵션은 Pax Exam이며 labs-paxexam-karaf입니다 (자습서는 http://iocanel.blogspot.com/2012/01/advanced-integration-testing-with-pax.html 참조). 그러나 성능에 대해 우려하고 있습니다. Pax Exam은 모든 테스트 방법에 대해 새로운 프레임 워크를 시작한 것 같습니다. 나는 또한 그것의 주요 초점이 아니지만 Arquillian has some OSGi support을 발견했습니다. JUnit4osgi는 JUnit 3 만 지원하기 때문에 옵션이 아닙니다.Arquillian은 OSGi (통합) 테스트를 위해 Pax 시험과 어떻게 비교됩니까?

두 프레임 워크에 익숙하지 않은 사용자는 처음에는 더 좋을 것입니다. 단점은 무엇입니까?

답변

3

적절한 OSGi 지원이 필요한 경우 Arquillian을 사용해야하는 이유는 무엇입니까? =)

워드 프로세서가 PaxExam 2를 참조하십시오 PaxExam보고 -이와 그립에 도착하는 시간이 걸릴 것입니다 1 절과 2

PaxExam 사이에 상당한 차이가 있습니다,하지만 당신은 힙을 배울 수 있습니다 과정에서 OSGi에 관해서 (확실히 좋은 일이지만, 여전히 다치게 할 수있다).

@ Dmytro의 답변과 마찬가지로 Test Containers에는 junit 테스트와 동일한 VM으로 실행되는 네이티브 컨테이너가 포함되어 있습니다. 즉, Eclipse에서 디버그로 시작할 수 있습니다. 이것은 특히 org.eclipse.m2e : lifecycle-mapping maven eclipse plugin과 org.ops4j.pax.exam : maven-paxexam-plugin에서 잘 작동합니다. 이 방법은 환상적이고 완벽한 IDE 통합입니다.

PaxExam 설명서는 약간 희박하지만 good examples (대화 형 셸을 제공하는 기본 방법이있는 기본 시작 프로그램 참조)과 wiki doc이 있습니다. 메일 링리스트 사람들 ([email protected])이 막히면 도움이됩니다.

또 다른 대안은 Karaf's paxexam입니다. 매우 매끄럽고 쉽게 Karaf 인스턴스를 시작하여 실행 (features.xml 등) 할 수 있습니다.

필자는 개인적으로 PaxExam2를 사용합니다. 프레임 워크 공급자에 대한 명시 적 종속성을 원하지 않으므로 (Karaf에 대한 모든 내용은 없습니다).

+0

첫 번째 문장은 계속 유효합니까? Arquillian 테스트가 실제 OSGi 컨테이너에서 실행되지 않습니까? – jblack

3

Reactor Strategies 기반 Pax-Exam은 동일한 OSGi 컨테이너에서 모든 테스트 메소드를 실행할 수 있습니다.

2

(팍스 3.0 PerClass 별칭)에 EagerSingleStagedReactorFactory 인원의 시험 2.x를 사용하면 동일한 OSGi 컨테이너에있는 모든 시험 방법에게 주어진 클래스의 을 실행할 수 있습니다.

Pax 시험 3.0.0.M1에서 소개 된 PerSuite 전략을 사용하면 스위트의 동일한 테스트 클래스가 동일한 컨테이너에서 실행됩니다.

그런데 Pax Exam 3.0은 OSGi 외에 Java EE 및 CDI 컨테이너를 지원하므로 Arquillian과 기능적 유사성이 있으며 반대편에서 Pax Exam 만 제공됩니다.

Pax 시험에서는 배포를 ShrinkWrap 스타일로 어셈블 할 필요가 없으며 클래스 패스에서 자동으로 생성됩니다. 또한 공유 구성으로 테스트 클래스 스위트를 실행할 수 있습니다.

관련 문제