Include Page | ||||
---|---|---|---|---|
|
...
junit4OSGi tests can also be executed automatically during the integration-test
phase of a maven build process. This page describes the maven-junit4osgi-plugin allowing a seamless maven integration.
Div | ||||||
---|---|---|---|---|---|---|
| ||||||
|
...
What does the maven-junit4osgi-plugin provide?
...
The plug-in sources are available in the iPOJO trunk.
However the junit4osgi and iPOJO runtime are also required. So, download the source of iPOJO:svn co http://svn.apache.org/repos/asf/felix/trunk/ipojo/
To compile it, run the following commands:
Code Block | ||||
---|---|---|---|---|
| ||||
cd ipojo mvn clean install -Pexamples |
...
The plug-in has only one parameter. The 'deployProjectArtifact
' parameter enables or disables the current artifact deployment. If the current project contains tests, the plug-in can deploy the built artifact (as illustrated in this pom). Otherwise, the current project artifact is not deployed. This can be useful if the project just depends on other test bundles and sets the test configuration (as this pom).
...
The plugin exposed a LogService in the OSGi framework to collects logged messaged. This service enabled by default. You can diable it by launching the plugin with the logService
property set to false
Code Block | ||||
---|---|---|---|---|
| ||||
mvn clean integration-test -DlogService=false |
...
Sometimes you want to skip tests . The plugin uses the maven.test.skip
property to skip tests such as
Code Block | ||||
---|---|---|---|---|
| ||||
mvn clean install -Dmaven.test.skip=true |
...
If tests throws errors or have failures, the plugin breaks the Maven build. You can by-pass this behavior by ignoring errors and failures. This is useful during test generation.
Code Block | ||||
---|---|---|---|---|
| ||||
mvn clean install -Dmaven.test.failure.ignore=true |
...
To execute test, just launch the mvn clean integration-test
command.
Code Block | ||||
---|---|---|---|---|
| ||||
[INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Building iPOJO Primitive Manipulation Test Suite [INFO] task-segment: [integration-test] [INFO] ------------------------------------------------------------------------ [INFO] [resources:resources] [INFO] Using default encoding to copy filtered resources. [INFO] [compiler:compile] [INFO] Nothing to compile - all classes are up to date [INFO] [resources:testResources] [INFO] Using default encoding to copy filtered resources. [INFO] [compiler:testCompile] [INFO] No sources to compile [INFO] [surefire:test] [INFO] No tests to run. [INFO] [bundle:bundle] [INFO] [ipojo:ipojo-bundle {execution: default}] [INFO] Start bundle manipulation [INFO] Metadata file : /Users/clement/Documents/workspaces/felix-trunk/ipojo/tests/manipulator/primitives/target/classes/metadata.xml [INFO] Input Bundle File : /Users/clement/Documents/workspaces/felix-trunk/ipojo/tests/manipulator/primitives/target/tests.manipulation.primitives-1.1.0-SNAPSHOT.jar [INFO] Bundle manipulation - SUCCESS [INFO] [junit4osgi:test {execution: default}] Analyzing org.apache.felix.ipojo - compile Analyzing org.apache.felix.ipojo.metadata - compile Analyzing org.osgi.core - compile Analyzing junit - compile Analyzing org.apache.felix.ipojo.junit4osgi - compile Analyzing tests.manipulation.metadata - test ------------------------------------------------------- T E S T S ------------------------------------------------------- Deploy : /Users/clement/Documents/workspaces/felix-trunk/ipojo/tests/manipulator/primitives/target/tests.manipulation.primitives-1.1.0-SNAPSHOT.jar Loading org.apache.felix.ipojo.test.scenarios.manipulation.ManipulationTestSuite Loading org.apache.felix.ipojo.test.scenarios.manipulation.ManipulationTestSuite Junit Extender starting ... Running Manipulation Metadata Test Suite Tests run: 16, Failures: 0, Errors: 0, Time elapsed: 0 sec Running Primitive Manipulation Test Suite Tests run: 17, Failures: 0, Errors: 0, Time elapsed: 0 sec Results : Tests run: 33, Failures: 0, Errors:0 Unload test suites [class org.apache.felix.ipojo.test.scenarios.manipulation.ManipulationTestSuite] Unload test suites [class org.apache.felix.ipojo.test.scenarios.manipulation.ManipulationTestSuite] Cleaning test suites ... [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 6 seconds [INFO] Finished at: Mon Nov 10 21:30:21 CET 2008 [INFO] Final Memory: 9M/18M [INFO] ------------------------------------------------------------------------ |
...
- An easy integration in a Maven-based build process
- A good flexibility allowing reproducing production execution environments to test the application
- Test result output is the same as surefire
- Is able to generate Surefire-like reports
Include Page FELIX:apache-felix-ipojo-footerFELIX: apache-felix-ipojo-footer