forked from arquillian/arquillian.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update DataSheet for JBossWorld/JUDCon
- Loading branch information
1 parent
501f7ed
commit 1393ca1
Showing
1 changed file
with
25 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,28 +1,37 @@ | ||
Arquillian Overview | ||
=================== | ||
Arquillian | ||
========== | ||
|
||
WARNING: DRAFT | ||
*_So you rule your code. Not the bugs._* | ||
|
||
.Community Project | ||
|
||
Arquillian is the missing link in Java EE development. Developers have long had to fend for themselves in the testing stage, burdened with bootstrapping the infrastructure on which the test depends. That's time lost, and it places a high barrier to entry on integration testing. Arquillian tears down that barrier. | ||
Arquillian is an open, innovative and extensible testing platform that enables developers to easily create automated integration, functional and acceptance tests for Java software. | ||
|
||
Arquillian is a container-oriented test framework. It picks up where unit tests leave off, targeting the integration of application code inside a real runtime environment. Just as Java EE 5 simplified the server programming model by providing declarative services for POJOs, Arquillian equips tests with container lifecycle management and enrichment. With Arquillian, you write a basic test case and annotate it with declarative behavior that says, "run with Arquillian." Launching the test is as simple as right-clicking the test class in the IDE and selecting Run As > JUnit or TestNG test. Based on the classpath configuration, Arquillian starts or binds to the target container (JBoss AS, GlassFish, OpenEJB, etc) and deploys the test case bundled with the test archive defined in the @Deployment method. Your test executes inside the container and enjoys all the same services as an application component. That means you get dependency and resource injection into the test, you can access EJBs, you can load a persistence unit, you can get a handle to a database connection, etc. Yet, on the surface, it looks like any other unit test. (Arquillian also has a client execution mode, which only deploys the test archive, not the test case). | ||
Testing is still the biggest challenge for developers building on the Java enterprise platform. Arquillian solves this problem in a radical way that not only makes testing possible, it gives tests real value. It even enables developers to take on scenarios previously considered untestable or too expensive to test. | ||
|
||
Instead of bringing your runtime to the test, Arquillian brings your test to the runtime. | ||
Picking up where unit tests leave off, Arquillian handles all the plumbing of container management, deployment and framework initialization so you can focus on the task at hand, writing your tests. Real tests. In short… | ||
|
||
Features of Arquillian include: | ||
Arquillian works by moving the code under test to the runtime so the test doesn’t need to embed or mock the runtime itself. Arquillian eliminates this burden by handling all aspects of test execution, which include: | ||
|
||
* Runnable from both JUnit and TestNG | ||
* Abstracts out server lifecycle and deployment | ||
* Injects resources like managed beans, EJBs or objects from JNDI into the test instance | ||
* Zero reliance upon a formal build; can be run or debugged from IDEs like Eclipse, IDEA, NetBeans | ||
* Supports remote and embedded containers: JBoss AS, GlassFish, Jetty, Tomcat, OpenEJB, OSGi and more on the way | ||
* Enables pass-by-reference between the test and the server, even if the server is in another JVM from the test launcher | ||
* Provides an extensible SPI - plug in your own containers and take advantage of the Arquillian bus to provide services to the test | ||
* Managing the lifecycle of one or more containers | ||
* Packaging the test case, dependent classes and resources into ShrinkWrap archives | ||
* Deploying the archives to the containers | ||
* Enriching the test case by providing dependency injection and other declarative services | ||
* Running the client and/or in-container tests | ||
* Capturing the results and transporting them to the test runner for reporting | ||
No longer does writing a test involve system administration tasks. No more custom scripts or copy-paste Maven configuration. No more full builds. No more test classpath mayhem. No more looking up resources manually in JNDI. No more reliance on coarse-grained, black-box testing. | ||
As soon as you begin integrating components inside a runtime, whether it be embedded or standalone, you need a service to manage that runtime. That's Arquillian's core concern. Arquillian puts the code to test inside the runtime and then delegates to extensions to help integrate components, invoke services, navigate web pages, measure performance characteristics, report code coverage and pass tests through the cloud, just to name a few. | ||
|
||
Arquillian keeps you focused on the test, while enjoying the services provided by the container. And it's turning heads. | ||
Arquillian provides a component model for tests, one that matches the programming model used to develop the application. | ||
|
||
The Arquillian project adheres to three core principles: | ||
|
||
. Tests should be portable to any supported container | ||
. Tests should be executable from both the IDE and the build tool | ||
. The platform should extend or integrate existing test frameworks | ||
|
||
By focusing on these principles, Arquillian makes integration and functional tests as simple to write and execute as unit tests. | ||
|
||
Find out more at http://arquillian.org | ||
|
||
*_No more mocks. No more container lifecycle and deployment hassles. Just real tests!_* |