Pax Drone
Namechange
Pax Drone is now Pax Exam.
You can find the sourcecode now at https://scm.ops4j.org/repos/ops4j/projects/pax/exam
This page will be moved as part of the first pax exam: v. 0.3
Pax Drone is an extensible integration testing framework for OSGi
It supports a large amount of osgi framework configurations out of the box to provide painless integration testing experience.
If any of the following is true
- You want have a simple to setup integration testframework for OSGi
- You want to run your tests on a remote OSGi framework
- You want to safely run your tests on a local OSGi framework
- You want millions of [supported OSGi framework configurations] (ok, at least some..)
- You want to execute and debug a chunk of code inside your osgi based application
- Want to use [urls] like mvn:org.ops4j.pax.logging/pax-logging-api to setup your test environment
- You don't know why you need integration testing for OSGi but want to spend some minutes checking it out..
.. Pax Drone is for you!
- Issue Management
- [Tutorials]
- Terminology
- Change Log
- FAQ
System Requirements
- Java 5 virtual machine running on a supported operating system.
Source Code
https://scm.ops4j.org/repos/ops4j/projects/pax/drone ( or browse via FishEye )
This project builds with Apache Maven and uses Apache Felix's maven-bundle-plugin, and Peter Krien's bnd tool.
Installation
1. Use the following dependencies to get started: (or look at the sample sub project)
org.ops4j.pax.drone pax-drone-spi 0.2.1 org.ops4j.pax.drone pax-drone-spi-junit 0.2.1 org.ops4j.pax.drone pax-drone-connector-paxrunner 0.2.1
For the cutting edge version (already rebrandet to Pax Exam) use this
org.ops4j.pax.exam pax-exam-spi 0.3.0-SNAPSHOT org.ops4j.pax.exam pax-exam-junit 0.3.0-SNAPSHOT org.ops4j.pax.exam pax-exam-connector-paxrunner 0.3.0-SNAPSHOT
The main maven repository is http://repository.ops4j.org/maven2/ .
So you have to add this to your settings.xml or pom:
ops4j.releases http://repository.ops4j.org/maven2 false
For snapshot versions build it yourself (https://scm.ops4j.org/repos/ops4j/projects/pax/drone) or use the snapshot repository:
ops4j.snapshots http://repository.ops4j.org/mvn-snapshots true
2. Write your first drone test (Pax Drone 0.2.x) :
package com.lhsystems.pixxa.integrationtest.flightinformationsystemservice; import org.ops4j.pax.drone.spi.junit.DroneTestCase; import org.ops4j.pax.drone.api.DroneConnector; import static org.ops4j.pax.drone.connector.paxrunner.GenericConnector.*; import org.ops4j.pax.drone.connector.paxrunner.Platforms; public class SimpleTest extends org.ops4j.pax.drone.spi.junit.DroneTestCase { public DroneConnector configure() { return create(createRunnerContext(),createBundleProvision() .addBundle("mvn:org.ops4j.pax.logging/pax-logging-service") .addBundle("mvn:org.ops4j.pax.logging/pax-logging-api") ).setPlatform(Platforms.FELIX); } public void testBundles1() { // an bundleContext instance is injected at runtime. assertNotNull( bundleContext ); } public void testBundles2(BundleContext myBundleContext) { // or you prefer to get it from method paraemter. Result is same as in testBundles1 assertNotNull( myBundleContext ); } }
After last 0.3.0 release, there is now some new documentation available that should help you to get started with Pax Exam quickly:
- Pax Exam - Tutorial 1 gets you started without reading the Reference Documentation first.
- FAQ 1.x helps you to solve most known problems.
- Support tells you how to get help quickly.
Pax Drone 0.2.1 has been released.
Checkout release notes for details.
As written and decided on the mailinglist this week, pax drone will be re-named to Pax Exam.
The change will be done after the upcoming 0.2.1 release
All marketing material and tv-spots will be re-made asap..
Pax Drone 0.2.0 has been released.
This release focuses on user experience and user feedback.
Additional major new features:
- support for JUnit4 test runner.
- new Test First Scenario: see PAXDRONE-36 for details
- more paxrunner options
Checkout release notes for details.
Pax Drone 0.1.3 has been released.
This is a bugfix release.
Checkout release notes for details.
As for now, this is the last scheduled 0.1.x release.
The 0.2.x line is already in development and will significantly improve transparency to the inner workings (PAXDRONE-34), a much requested need, and more.