Fabric8 Documentation

Arquillian

We use Arquillian as the primary container based testing framework; allowing us to write tests once and then reuse them when running embedded or remote containers.

For example the fabric-itests-common module defines a bunch of common arquillian based integration tests using fabric8, such as, FabricCreateCommandTest.java which spin up a fabric; they can be tested with an embedded fabric codebase or ran in a karaf, tomcat or wildlfy container etc.

Remote Auto Scale Tests

Its good to be able to test the binary distritution formats; such as

Also we have the Auto Scaling capability, that given a set of requirements we can auto scale the required containers to be created in the right order on the various different container providers: child, ssh, docker, openshift or cloud.

So we have a set of remove container plugins for arquillian that take the requirements and auto scale them.

For example the test case AutoScaleSingleMessageBrokerTest.java uses one of the available arquillian plugins to create the initial fabric; then it defines the requirements it needs (i.e. how many instances of each profile and how they should be placed onto hosts) and then asserts that they can be properly provisioned within the given amount of time.