Arquillian is an innovative and highly extensible testing platform for the JVM that enables developers to easily create and execute portable integration, functional and acceptance tests for Java middleware.

The Arquillian project adheres to three core principles...

Tests should be portable to any supported container:

Keeping container-specific APIs out of the tests enables developers to verify application portability by running tests in a variety of containers. It also means that lightweight containers can be used as a substitute for full containers during development.

Tests should be executable from both the IDE and the build tool:

By leveraging the IDE, the developer can skip the build for a faster turnaround and has a familiar environment for debugging. These benefits shouldn’t sacrifice the ability to run the tests in continuous integration using a build tool.

The platform should extend or integrate existing test frameworks:

An extensible architecture encourages reuse of existing software and fosters a unified Java testing ecosystem.

Regardless of how complex it becomes, executing an Arquillian test is as simple as selecting “Run As > Test” in the IDE or executing the “test” goal from the build tool.

Take back the control of your testing

This in-depth tutorial and case-study will demonstrate how to take a real facebook application that was written using Java EE technology, and writing a fully automated and reproducible test-suite. These tests live with the code, can be run with every build, and will save a lot of time down the road.

Read, or contribute your own ideas to, the full tutorial at