Arquillian Drone provides a simple way to write functional tests for web apps. Drone brings the power of WebDriver into the Arquillian, and the power of Arquillian to WebDriver.
= Arquillian Drone image:https://travis-ci.org/arquillian/arquillian-extension-drone.svg["Build Status", link="https://travis-ci.org/arquillian/arquillian-extension-drone"] :asciidoctor-source: https://raw.githubusercontent.com/arquillian/arquillian-extension-drone/master/docs :numbered: :sectlink: :sectanchors: :sectid: :source-language: java :source-highlighter: coderay :sectnums: :icons: font :toc: left
ifndef::generated-doc[] To read complete documentation visit http://arquillian.org/arquillian-extension-drone/ endif::generated-doc[]
The Arquillian Drone 2 extension for Arquillian provides a simple way to include functional tests for an application with a web-based user interface.
Arquillian Drone 2 brings the power of WebDriver into the Arquillian framework. WebDriver serves as a language to communicate with the browser, by filling the forms, navigating the pages and validating their content.
Compared with its predecessor Arquillian Drone 1, it offers http://github.com/arquillian/arquillian-extension-drone/wiki/SPI-changes-in-Drone-2[new features and tools] as part of the SPI as well as http://github.com/arquillian/arquillian-extension-drone/wiki/API-changes-in-Drone-2[multiple life cycle scopes of @Drone points] as part of the API.
== Why should I use Arquillian Drone instead of plain WebDriver? There are many reasons why you want to do that, the most important being:
If you are still not convinced that Arquillian Drone matches your needs, you might have a look at https://github.com/arquillian/arquillian-graphene[Arquillian Graphene 2], which is a wrapper on top of WebDriver, goes one step further and provides you a convenient way how to write tests for rich AJAX UIs with an ease, injections for Page Objects and Page Fragments and much more.
ifdef::generated-doc[]
include::{asciidoctor-source}/drone-getting-started.adoc[]
include::{asciidoctor-source}/automatic-download.adoc[]
include::{asciidoctor-source}/supported-frameworks.adoc[]
include::{asciidoctor-source}/maven-setup.adoc[]
include::{asciidoctor-source}/life-cycle-scope-of-drone-points.adoc[]
include::{asciidoctor-source}/configuring-drone-instances.adoc[]
include::{asciidoctor-source}/drone-spi.adoc[]
endif::generated-doc[]
== Building the project
Prerequisites:
=== Running test suite
To run only unit tests:
To run the whole test suite including functional tests using chrome
browser.
In case you want to modify the browser, you can specify -Dbrowser=firefox
for instance. This will run the test suite using firefox defined. Similarly, you can use Chrome, Safari, etc...
TIP: VNC server instance can be used to let all the browsers pop out in separate display. Just prepend both commands with +DISPLAY=:${display.number}+
=== Releasing new version
Run following commands:
[source,bash] mvn clean release:prepare release:perform
Make sure that you push the tag, close all issues with given version in JIRA and mark version as released.