Arquillian originated from the JBoss Test Harness, a utility created by Pete Muir as the foundation of the JSR-299 (CDI 1.0) and JSR-303 (Bean Validation 1.0) TCKs. The JBoss Test Harness prototyped a solution that provided:
- Declarative, annotation driven assembly of archives
- The archive mechanism is needed to allow easy execution from the IDE, without having to call out to a slow and cumbersome build script. In Arquillian this responsibility was delegated to ShrinkWrap, a fluent Java API for assembling archives such as JARs, WARs and EARs in Java.
- A Java Adapter API which could start/stop a container and deploy a test
- The container adapters are needed to allow running inside an IDE, and also allow a test to be reused in multiple environments.
- Easy switching between in-container and standalone mode
- Arquillian abstracted this concept away from the test case, and instead treats in-container and standalone tests as different types of containers.
- Packaging of the test case alongside the archive
- The test and infrastructure is relocated to the server where it is executed by TestNG when running in-container.
- A pluggable test executor
- Allows the framework to select incontainer execution or standalone execution for the same test.
It quickly became obvious that this was something that could be really useful to other people outside of the CDI TCK and Bean Validation TCKs.
The formation of Arquillian
Since Pete had hacked on the JBoss Test Harness under time pressure to start the CDI TCK, the plan was to take the best ideas from that project and start fresh. However, work on Java EE 6 was reaching a crucial point, so the project was put on the backburner until late 2009, when Aslak Knutsen popped in. He quickly picked up the key ideas and began prototyping a new test framework inside the Weld codebase called Weld Test, which included JUnit support. It was immediately clear that this ongoing investment in a test framework deserved its own repository. Aslak and Pete pulled together ideas and code from JBoss Test Harness and Weld Test, joined it with ShrinkWrap with the help of Andrew Rubinger, and what emerged was a portable test framework with a pluggable architecture and a new name, Arquillian. Aslak soon joined Red Hat to work on Arquillian and later became the project lead.
Since then, support has been added for additional containers, more sophisticated test enrichment and other test framework integrations. Arquillian was put to use immediately as the foundation of the test suites in the Seam 3 modules and examples. It is also being adopted as a replacement for the JSR-346 (CDI 1.1) to replace the JBoss Test Harness. In other words, it’s quickly becoming a standard for testing in the Java platform.
Arquillian is part of the JBoss Testing SIG, an effort to unify the testing-related projects in the JBoss Community and beyond to provide a comprehensive testing tool set for application developers. It brings developers in the JBoss Community who are passionate about testing together so that we can all get on the same page. The initiative is led by the JBoss Testing Guild, Aslak Knutsen, Dan Allen and Andrew Rubinger. We kicked it off by establishing the #jbosstesting IRC channel on Freenode.net. While Arquillian now has its own IRC channel on Freenode, the #jbosstesting channel continues to be used to align testing tools and strategies in the JBoss Community.
Significant contributions to Arquillian have come from the Quality Engineering (QE) team at Red Hat. This team is focused on performing Quality Assurance (QA) for various JBoss projects in preparation for their inclusion in the JBoss Enterprise Platform. They have aligned their work with the JBoss Testing SIG and have, as a result, merged the test frameworks they’ve developed into the Arquillian project. Notable contributions include Drone and Graphene (formerly Ajocado).
The original artwork for Arquillian, most notably Ike, was created by Cheyenne Weaver over many long months of creative deliberation with the project team. The story and artwork of Ike and his bug fighting team has evolved thanks to the work of community member and content strategist Sarah White.
About the name
The project name may or may not be related to the alien species from a popular movie about protecting the Earth from alien scum. We just want to protect you from infrastructure scum in your integration tests. Death to all bugs!