The bnd-testing-maven-plugin
is a bnd based plugin to run integration tests.
Point the plugin at one or more bndrun files in the same project. It will execute tests against the runtime defined in the bndrun file.
The bndrun file must contain bundles that have the Test-Cases
header set to class names that
contain the JUnit tests.
Here is an example configuration:
<plugin>
<groupId>biz.aQute.bnd</groupId>
<artifactId>bnd-testing-maven-plugin</artifactId>
<version>${bnd.version}</version>
<configuration>
<failOnChanges>false</failOnChanges>
<bndruns>
<bndrun>mytest.bndrun</bndrun>
</bndruns>
</configuration>
<executions>
<execution>
<goals>
<goal>testing</goal>
</goals>
</execution>
</executions>
</plugin>
Here's an example setting the bundles
used for resolution.
...
<configuration>
...
<bundles>
<bundle>bundles/org.apache.felix.eventadmin-1.4.8.jar</bundle>
<bundle>bundles/org.apache.felix.framework-5.4.0.jar</bundle>
</bundles>
</configuration>
...
The -runee
and -runrequires
values can be inferred from the maven project as follows:
-runee
, if omitted from the bndrun file, will be inferred from the<target>
configuration ofmaven-compiler-plugin
-runrequires
, if omitted from the bndrun file, will be inferred from the project'sartifactId
and applied asosgi.identity;filter:='(osgi.identity=<artifactId>)'
, if the project packaging isjar
orwar
and the project has thebnd-maven-plugin
An implicit repository containing the project artifact and project dependencies (as defined through the configuration of bundles
, scopes
, useMavenDependencies
and includeDependencyManagement
) is created and added when this plugin is executed.
Configuration Property | Description |
---|---|
bndruns |
Can contain bndrun child elements naming a bndrun file defining a runtime and tests to execute against it. You can also specify include and exclude child elements using Ant-style globs to specify bndrun files. These are relative to the ${project.basedir} directory. Defaults to <include>*.bndrun</include> . |
resolve |
Whether to resolve the -runbundles required for a valid runtime. Defaults to false . |
failOnChanges |
Whether to fail the build if any change in the resolved -runbundles is discovered. Defaults to true . |
reportsDir |
The output directory for test reports. A subdirectory of ${bndrun} will be created for each bndrun file supplied. Defaults to ${project.build.directory}/test-reports . |
cwd |
The current working directory of the test process. A subdirectory of ${bndrun} will be created for each bndrun file supplied. Defaults to ${project.build.directory}/test . |
skipTests OR maven.test.skip |
Does not execute any tests. Used from the command line via -D . Defaults to false . |
testingSelect |
A file path to a test file, overrides anything else. Defaults to ${testing.select} . Override with property testing.select . |
testing |
A glob expression that is matched against the file name of the listed bndrun files. Defaults to ${testing} . Override with property testing . |
test |
A comma separated list of the fully qualified names of test classes to run. If not set, or empty, then all the test classes listed in the Test-Classes manifest header are run. Use a colon (:) to specify a test method to run on the specified test class. Override with property test . |
bundles |
A collection of files to include in the implicit repository. Can contain bundle child elements specifying the path to a bundle. These can be absolute paths. You can also specify include and exclude child elements using Ant-style globs to specify bundles. These are relative to the ${project.basedir} directory. Defaults to dependencies in the scopes specified by the scopes property, plus the current artifact (if any and useMavenDependencies is true ). |
useMavenDependencies |
If true , adds the project dependencies subject to scopes to the collection of files to include in the implicit repository. Defaults to true . |
reportOptional |
If true , resolution failure reports (see resolve ) will include optional requirements. Defaults to true . |
scopes |
Specify from which scopes to collect dependencies. Defaults to compile, runtime . Override with property bnd.testing.scopes . |
includeDependencyManagement |
Include <dependencyManagement> subject to scopes when collecting files to include in the implicit repository. Defaults to false . Override with property bnd.testing.include.dependency.management . |