Arquillian Extension QUnit 1.0.0.Alpha1 Released

Since we wrote this post we didn't laze around. Check our latest announcement.

The Arquillian team is proud to announce the 1.0.0.Alpha1 release of the Arquillian Extension QUnit component!

This is the first release of the Arquillian QUnit extension which aims to automate QUnit JavaScript unit testing.

Highlighted Features

Integration with JUnit

This means that the extension integrates transparently with the JUnit testing framework and therefore can be easily used in continuous integration environments. Each QUnit test is considered to be a JUnit test. In case of failures, the failed assertions are reported as if it were a JUnit test.

Execute QUnit Test Suites using CLI or from IDE

You can execute one or more QUnit Test Suites using CLI or from your favorite IDE using the normal JUnit integration.

Getting Started

To start using the Arquillian QUnit extension, add the following dependency to your project:

pom.xml
<dependency>
    <groupId>org.jboss.arquillian.extension</groupId>
    <artifactId>arquillian-qunit</artifactId>
    <version>1.0.0.Alpha1</version>
</dependency>

Writing Arquillian QUnit test classes

To create an Arquillian QUnit test class, annotate the test class with the @RunWith(QUnitRunner.class) and @QUnitResources annotations. The @QUnitResources annotation’s value should be the path of the folder which contains all the QUnit resources and dependencies which are required for your QUnit tests execution. For each QUnit Test Suite that you would like to execute, create a method and annotate it with the @QUnitTest annotation. The annotation’s value should be the QUnit Test Suite path, relative to the @QUnitResources path. On the below example, the src folder contains all the resources required from our QUnit tests in order to be executed and our QUnit Test Suite (qunit-tests.html) is included inside the src/test/resources/qunit-assets folder.

MyTestClass.java

@RunWith(QUnitRunner.class)
@QUnitResources("src/")
public class MyTestClass {

  @QUnitTest("test/resources/qunit-assets/qunit-tests.html")
  public void myQUnitSuiteTest() {
    // empty body
  }
}

Here’s a complete example:

ArquillianQUnitTestCase.java

@RunWith(QUnitRunner.class)
@QUnitResources("src/test/resources/assets")
public class ArquillianQUnitTestCase {

    @Deployment
    public static Archive<?> createDeployment() {
        return ShrinkWrap.create(WebArchive.class, "rest-service.war")
                .addClasses(Car.class, CarService.class, CarRepository.class, JaxRsActivator.class)
                .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
    }

    @QUnitTest("tests/rest-service/qunit-tests-ajax.html")
    @InSequence(1)
    public void qunitAjaxTest() {
        // empty body - only the annotations are used
    }

    @QUnitTest("tests/generic/qunit-assertions.html")
    @InSequence(2)
    public void qunitAssertionsTest() {
        // empty body - only the annotations are used
    }
}

You might want to see some showcases:

Showcase 1 contains a sample example which deploys a REST service along with the QUnit tests.
Showcase 2 shows how to execute QUnit tests on TravisCI
Showcase 3 depicts how Arquillian Qunit Extension can be used to test JavaScript code which uses the AngularJS JavaScript MVW framework

We look forward to your feedback on this release in our community forums or the #arquillian channel on FreeNode!

What is Arquillian?

Arquillian is open source software that empowers you to test JVM-based applications more effectively. Created to defend the software galaxy from bugs, Arquillian brings your test to the runtime so you can focus on testing your application's behavior rather than managing the runtime. Using Arquillian, you can develop a comprehensive suite of tests from the convenience of your IDE and run them in any IDE, build tool or continuous integration environment.

Release details

Component Arquillian Extension QUnit
Version 1.0.0.Alpha1 view tag
Release date 2013-08-27
Released by Karel Piwko
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-qunit-api jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-qunit jar javadoc pom

Release notes and resolved issues 1

Initial prototype release

Feature Request
  • ARQ-591 - Create extension for running JavaScript unit tests by Drone

Thanks to the following list of contributors: Tolis Emmanouilidis, Lukas Fryc, Karel Piwko

Arquillian Drone Extension 1.2.0.Beta2 Released

Since we wrote this post we didn't laze around. Check our latest announcement.

The Arquillian team is proud to announce the 1.2.0.Beta2 release of the Arquillian Drone Extension component!

What is Arquillian?

Arquillian is open source software that empowers you to test JVM-based applications more effectively. Created to defend the software galaxy from bugs, Arquillian brings your test to the runtime so you can focus on testing your application's behavior rather than managing the runtime. Using Arquillian, you can develop a comprehensive suite of tests from the convenience of your IDE and run them in any IDE, build tool or continuous integration environment.

Release details

Component Arquillian Drone Extension
Version 1.2.0.Beta2 view tag
Release date 2013-09-11
Released by Karel Piwko
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-drone-bom pom
  • org.jboss.arquillian.extension » arquillian-drone-selenium-depchain pom
  • org.jboss.arquillian.extension » arquillian-drone-webdriver-depchain pom
  • org.jboss.arquillian.extension » arquillian-drone-api jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-spi jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-configuration jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-impl jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-selenium-server jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-selenium jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-webdriver jar javadoc pom

Release notes and resolved issues 9

Component Upgrade
  • ARQ-1466 - Drone: upgrade to Core 1.1.1.Final
Enhancement
  • ARQ-1476 - Improve Drone Test Enricher loggging
Feature Request
  • ARQ-1385 - Drone: resize the PhantomJS window after the start of a test
Bug
  • ARQ-1467 - Method scoped Drones ignore other test enrichers
  • ARQ-1468 - Enable tests to pass with -Darquillian.debug=true
  • ARQ-1469 - Improve logging for AbstractWebDriverFactory
  • ARQ-1470 - Improve warning message for overriding browser
  • ARQ-1472 - The precedence for BeforeDroneInstantiated event observation in DroneInstanceCreator is set badly
  • ARQ-1475 - Enhancer does not allow access to real instance

Thanks to the following list of contributors: Karel Piwko, Stefan Miklosovic

Graphene 2.0.0.Alpha5 Released

Since we wrote this post we didn't laze around. Check our latest announcement.

The Arquillian team is proud to announce the 2.0.0.Alpha5 release of the Graphene component!

The last step before Beta release brings you a lot of new features.


Highlighted Changes

Deprecations in this release

With the support of the community, we have recognized that some parts of the API needs to be enhanced to achieve better clarity, readability and consistency. The old parts are deprecated in this release, and will be removed in the upcoming Beta1 release. (list of deprecations here)

Guard Improvements and Fixes

RequestGuard interface is now exposed as an API and brings new methods for filtering the requests that should be intercepted. This is especially useful in cases where your page does asynchronously communicate with a server (using Comet/Push method) which can make your tests undeterministic – the asynchronously invoked request can interfere with a request invoked synchronously (e.g. by clicking on a button) and Graphene can’t guess which request should be observed. With the RequestGuard API you can ignore the request which you’re not interested in guarding. (JavaDoc)

Support for parallel browser sessions

The Graphene context is no longer thread-local which enables parallel browser sessions. In other words; you can control two different browsers in one test. (an example here)

Page Objects can encapsulate their location

You can easily denote the Page Objects location via the @Location annotation. When used with @InitialPage annotation as a test parameter, Graphene will load that location as a first action for the test, and will also give you the initialized page object. (an example here)

Injecting elements from HTML frames/iframes

To facilitate the tedious process of switching to and from a particular frame/iframe; you can now just use the @InFrame annotation to specify in which frame the element should be located. The details are handled by Graphene. (an example here)

Page Fragments can implement the WebElement interface

If you want to give your Page Fragments all the capabilities of the WebElement interface, without implementing them youself; you can simply add implements WebElement and make your fragment abstract. Graphene will provide you with a proxy that delegates all the WebElement method invocations to your page fragment’s @Root element.

Drone enrichers for Page Fragments and Page Objects

It is now possible to inject objects into your Page Fragments and Page Objects via the standard Arquillian enrcihment annotations: e.g. @Drone to get the browser instance, @ArquillianResource to get resources like URL, JavascriptExecutor, LocalStorage or others.

Introduction of the GrapheneElement

GrapheneElement is our way of providing you with the missing methods of the WebElement interface. GrapheneElement can be used anywhere the WebElement is used. Currently the only addition is the isPresent method, but we plan to add far more in the upcoming releases.

Introduction of the @FindByJQuery annotation

This is the replacement for the deprecated @FindBy annotation. Read more about it in the deprecations section.

Drone upgraded to 1.2.0.Beta1

For more info, please see the Drone release annoucement here.

Removed

Graphene.guardXhr()

Graphene.guardXhr() was replaced by Graphene.guardAjax().

Deprecations (will be removed in Beta1)

Our implementation of the @FindBy annotation

To achieve better extendability and to avoid errors caused by mistyped package name, we decided to deprecate our implementation of the @FindBy annotation (read more). Its purpose was solely to add support for JQuery locating strategy. This is now replaced by the @FindByJQuery annotation. The main advantage of the new approach is its extensibility. Support for our own location strategies are guaranteed via LocationStrategy interface.

Package name changes for @Page and @Root annotations
  • org.jboss.arquillian.graphene.spi.annotations.Root replaced by org.jboss.arquillian.graphene.fragment.Root
  • org.jboss.arquillian.graphene.spi.annotations.Page replaced by org.jboss.arquillian.graphene.fragment.Page
Selenium 1 support

Selenium 1 support will be removed in the upcoming Beta1 release, but you can still use Graphene 1, which is built on top of Selenium 1. (Graphene 1 docs)

Parallel browser sessions

Your test can now use more than one browser session. It might be handy for testing e.g. server push functionality. Consider the following scenario:

@Browser1 
@Drone
private WebDriver browser1;

@Browser2
@Drone
private WebDriver browser2;

public void testServerPushFromFirefoxToChromeAfterRegistration() {
    browser1.get(“http://localhost:8080/myApp”);
    browser2.get(“http://localhost:8080/myApp”);

    formFragment.registerUser(new User(“John”), browser1);
    registeredUsers.assertContains(“John”, browser2);
}

The @Browser1 and @Browser2 annotations are qualifiers, similar concept as in CDI. The settings for these browsers can be set e.g. in the arquillian.xml:

<extension qualifier="webdriver-browser1">
  <property name="browserCapabilities">firefox</property>
</extension>
<extension qualifier="webdriver-browser2">
  <property name="browserCapabilities">chrome</property>
</extension>

Page Objects location encapsulated

First thing you have to keep in mind before interacting with the page is that its loading in the browser. Once the URL of the particular page changes, you will have to change it on several places in your tests.

Graphene, therefore, encapsulates the page’s location, and provide you with a way to load the page automatically on a correct context root, before the test execution.

Consider following snippet:

@Location("register-page.html")
public class RegisterPage {
    //implementation of the page object goes here
}

@Test
public void testRegisterPage(@InitialPage RegisterPage page) {
   //Graphene automatically load MyPageObject location in the browser
   page.getInput().sendKeys(“Blah foo”);
   page.submit();
   assertFalse(page.isSubmitted());
}

You can also leverage Graphene.goTo(RegisterPage.class) method, which will use the @Location annotation value to load the correct page in the browser.

Elements from frames/iframes

If you find working with frames/iframes tedious using the WebDriver API, we have some good news for you. Graphene is now able to specify in which frame/iframe an element reside. Consider the following snippet:

@Page
@InFrame(index = 0)
private PageObject page;

@FindBy(id = "foo-bar")
@InFrame(nameOrId = "second")
private PageFragment myFragment;

You can specify the frame either by its index or its nameOrId strategy. Graphene will automatically switche to the coresponding frame when interacting with the page object and switches back after the interaction.

Roadmap

We have introduced all the features for the upcoming Graphene 2.0 release.

The Beta1 release will be pushed in a few days which will bring you some more goodies:

  • Arquillian guide
  • finished reference documentation
  • online JavaDoc documentation for Graphene API
  • removal of deprecated APIs
  • stabilization
  • usual portion of bug fixes

Be sure to remove deprecated APIs in order to stay compatible with upcoming Graphene 2.0 releases.

What is Arquillian?

Arquillian is open source software that empowers you to test JVM-based applications more effectively. Created to defend the software galaxy from bugs, Arquillian brings your test to the runtime so you can focus on testing your application's behavior rather than managing the runtime. Using Arquillian, you can develop a comprehensive suite of tests from the convenience of your IDE and run them in any IDE, build tool or continuous integration environment.

Release details

Component Graphene
Version 2.0.0.Alpha5 view tag
Release date 2013-09-03
Released by Lukas Fryc
Compiled against

Published artifacts org.jboss.arquillian.graphene

  • org.jboss.arquillian.graphene » graphene-parent pom
  • org.jboss.arquillian.graphene » graphene-selenium-parent pom
  • org.jboss.arquillian.graphene » graphene-selenium-api jar javadoc pom
  • org.jboss.arquillian.graphene » graphene-selenium-impl jar javadoc pom
  • org.jboss.arquillian.graphene » graphene-selenium-drone jar javadoc pom
  • org.jboss.arquillian.graphene » graphene-selenium pom
  • org.jboss.arquillian.graphene » graphene-webdriver-parent pom
  • org.jboss.arquillian.graphene » graphene-webdriver-api jar javadoc pom
  • org.jboss.arquillian.graphene » graphene-webdriver-spi jar javadoc pom
  • org.jboss.arquillian.graphene » graphene-webdriver-impl jar javadoc pom
  • org.jboss.arquillian.graphene » graphene-webdriver pom
  • org.jboss.arquillian.graphene » arquillian-graphene pom
  • org.jboss.arquillian.graphene » graphene-component-api jar javadoc pom

Release notes and resolved issues 32

Q3/13: SauceLabs; Context Propagation (Multiple Browsers Support); Continuous Integration

Component Upgrade
  • ARQGRA-323 - Update Arquillian Drone to 1.2, Arquillian Core to 1.1 and Selenium to 2.35
Enhancement
  • ARQGRA-236 - Made @FindBy annotation lookup mechanism extensible
  • ARQGRA-275 - Implement Guard observers which will filter out which request we want to intercept
  • ARQGRA-336 - Introduce FindByJQuery annotation
Feature Request
  • ARQGRA-72 - Support parallel browser sessions API for Selenium 2
  • ARQGRA-170 - Merge all static contexts to one (GrapheneContext)
  • ARQGRA-197 - Support for Page Objects encapsulating location
  • ARQGRA-224 - Page Fragments implementing WebElement delegate interface invocations to Root
  • ARQGRA-243 - Infer Graphene API from Impl module
  • ARQGRA-264 - Create possibility to "inject" elements from frames
  • ARQGRA-279 - Support for method Graphene.element(WebElement, By) and its condition isPresent
  • ARQGRA-291 - Provide wait until element is enabled
  • ARQGRA-296 - Provide a way for checking whether an element is present
  • ARQGRA-306 - Guards: Provide settings for customizing maximum timeout for callbacks scheduled in XHR onreadystatechange
Epic
  • ARQGRA-271 - The context should not be shared in static context, but propagated from the test as central point to the users (e.g. page fragments)
  • ARQGRA-276 - GhostDriver / PhantomJS support
  • ARQGRA-281 - Guard Improvements
  • ARQGRA-285 - Page Abstract. Improvements
  • ARQGRA-294 - Introduce an own implementation of WebElement
Bug
  • ARQGRA-274 - The request guard does timeout for delayed requests
  • ARQGRA-300 - Guard Ajax ends with timeout exception
  • ARQGRA-304 - The interceptor for handling StaleElementReferenceException is not present
  • ARQGRA-324 - ByChained doesn't work when jquerySelector is used
  • ARQGRA-327 - Graphene depends on deprecated interactions interfaces (Keyboard, Mouse, TouchScreen) removed in selenium 2.35.0
Task
  • ARQGRA-299 - Setup Graphene tests on SauceLabs
  • ARQGRA-339 - Deprecate Graphene's FindBy and How classes
Sub-task

Thanks to the following list of contributors: Lukas Fryc, Jan Papoušek, Juraj Huska, Marek Schmidt, Karel Piwko

Arquillian Drone Extension 1.2.0.Beta1 Released

Since we wrote this post we didn't laze around. Check our latest announcement.

The Arquillian team is proud to announce the 1.2.0.Beta1 release of the Arquillian Drone Extension component!

This release brings you better Firefox support and configurable browser instantiation timeout.


What’s new in Drone 1.2.0.Beta1?

Browser capabilities shorthand

Since the browserCapabilities property was made the default way to set the type of WebDriver you wanted, people have been asking for a simpler name. Now you can just use the browser property instead. While the original property is marked deprecated, we won’t be removing it in the 1.x series.

arquillian.xml
<extension qualifier=“webdriver”>
<!— since now, you can simply write “browser” —>
<property name=“browser”>chrome</property>
</extension>
Global Drone configuration in arquillian.xml

Since 1.2.0.Alpha3, Selenium and WebDriver instances are retrieved using a time limit, avoiding your tests to get stuck. This limit is now 60 seconds by default and can be modified in arquillian.xml file globally for all supported Drones. Also, the limit is disabled if you set arquillian.debug property to true.

arquillian.xml
<extension qualifier=“drone”>
<!— set this to zero if you want to disable timeout —>
<property name=“instantiationTimeoutInSeconds”>0</property>
</extension>
Firefox goodies

WebDriver configuration now accepts two new configuration properties, firefox_profile and firefoxUserPreferences. While the first one is not really new, it allows you to set a path to the Firefox profile template, the latter makes it possible to modify prefs.js for the created Firefox profile.

arquillian.xml
<extension qualifier=“webdriver”>
<property name=“firefox_profile”>/path/to/profile</property>
<property name=“firefoxUserPreferences”>/path/to/preferences/file</property>
</extension>
Updated to WebDriver 2.35.0

Arquillian Drone uses Selenium 2.35.0 by default. Due to recent WebDriver API changes(>=2.34.0), we do not recommend the use of the selenium-bom in <dependencyManagement> to downgrade to a older Selenium version. For the very same reason, we recommend you to update Arquillian Graphene to 2.0.0.Alpha5 that is compatible with latest Selenium. Also note that Selenium 2.35.0 deprecated the IPhoneDriver, so Drone did the same.

Drone is based on top of Arquillian Core 1.1.0.Final. Please update your <dependencyManagement> sections if you’re using Arquillian BOM (artifactId: arquillian-bom) together with Arquillian Drone BOM.

I’d like to thank everybody involved in this release. You guys make testing a breeze!

We hope that you’ll enjoy the improvements and look forward to hear your feedback in the community forums.

What is Arquillian?

Arquillian is open source software that empowers you to test JVM-based applications more effectively. Created to defend the software galaxy from bugs, Arquillian brings your test to the runtime so you can focus on testing your application's behavior rather than managing the runtime. Using Arquillian, you can develop a comprehensive suite of tests from the convenience of your IDE and run them in any IDE, build tool or continuous integration environment.

Release details

Component Arquillian Drone Extension
Version 1.2.0.Beta1 view tag
Release date 2013-08-28
Released by Karel Piwko
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-drone-bom pom
  • org.jboss.arquillian.extension » arquillian-drone-selenium-depchain pom
  • org.jboss.arquillian.extension » arquillian-drone-webdriver-depchain pom
  • org.jboss.arquillian.extension » arquillian-drone-api jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-spi jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-configuration jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-impl jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-selenium-server jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-selenium jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-webdriver jar javadoc pom

Release notes and resolved issues 8

Stabilization of new SPI model

Component Upgrade
  • ARQ-1459 - Update Drone to use Selenium 2.35.0
Enhancement
  • ARQ-1209 - Abbreviate WebDriver configuration property browserCapabilities as browser
Feature Request
  • ARQ-432 - Allow tests to intercept initializeBrowser()
  • ARQ-1245 - Allow FirefoxDriver to pass profile as file
  • ARQ-1315 - Make possible to configure firefox preferences via arquillian.xml
  • ARQ-1460 - Allow Drone instance creation timeout to be configurable
  • ARQ-1462 - Increase Instance creation timeout
Task
  • ARQ-1461 - Mark IPhoneDriver as deprecated

Thanks to the following list of contributors: Karel Piwko

Arquillian Drone Extension 1.2.0.Alpha3 Released

Since we wrote this post we didn't laze around. Check our latest announcement.

The Arquillian team is proud to announce the 1.2.0.Alpha3 release of the Arquillian Drone Extension component!

This release brings you PhantomJS binary auto resolution and a major update of SPI’s for extension creators.


Significant changes since 1.2.0.Alpha2

Support for PhantomJS binary auto resolution

The PhantomJS binary is now automatically resolved if it’s not found using the phantomjs.binary.path property. So you don’t have to specify this property anymore.

arquillian.xml
<extension qualifier=“webdriver”>
<property name=“browserCapabilities”>phantomjs</property>
</extension>
New SPI Model

If you are writing your own Arquillian extension and you would like to use Arquillian Drone, it is now much simpler. Drone exposes events for browser configuration, creation, enrichement, enhancement and disposal, giving you full control of its lifecycle. If you have used the old SPI model, there are now other interfaces you might need to implement.

Updated to WebDriver 2.33.0

Arquillian Drone uses WebDriver 2.33.0 by default. You can still use selenium-bom to override the WebDriver versions if needed.

Drone is now based on top of Arquillian Core 1.1.1.Final. Please update your <dependencyManagement> sections if you’re using Arquillian BOM (artifactId: arquillian-bom) together with Arquillian Drone BOM.

I’d like to thank everybody involved in this release. You guys make testing a breeze!

We hope that you’ll enjoy the improvements and look forward to hear your feedback in the community forums.

What is Arquillian?

Arquillian is open source software that empowers you to test JVM-based applications more effectively. Created to defend the software galaxy from bugs, Arquillian brings your test to the runtime so you can focus on testing your application's behavior rather than managing the runtime. Using Arquillian, you can develop a comprehensive suite of tests from the convenience of your IDE and run them in any IDE, build tool or continuous integration environment.

Release details

Component Arquillian Drone Extension
Version 1.2.0.Alpha3 view tag
Release date 2013-08-05
Released by Karel Piwko
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-drone-bom pom
  • org.jboss.arquillian.extension » arquillian-drone-selenium-depchain pom
  • org.jboss.arquillian.extension » arquillian-drone-webdriver-depchain pom
  • org.jboss.arquillian.extension » arquillian-drone-api jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-spi jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-configuration jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-impl jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-selenium-server jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-selenium jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-drone-webdriver jar javadoc pom

Release notes and resolved issues 7

PhantomJS automatic binary resolution

Component Upgrade
  • ARQ-1435 - Update Arquillian Core in Drone to 1.1.0.Final
  • ARQ-1452 - Update selenium to 2.33.0
Feature Request
  • ARQ-994 - Allow Arquillian Drone to wait asynchronously for instance creation
  • ARQ-1424 - Automatic resolution of PhantomJS binary for PhantomJS driver use
Bug
  • ARQ-754 - Change the way how Drone context is initialized
  • ARQ-1062 - Arquillian Drone Webdriver's OperaDriver depchain is not compatible with ShrinkWrap Resolver 1.0.0-beta-7
  • ARQ-1111 - Allow Extension to start without arquillian.xml

Thanks to the following list of contributors: Lukas Fryc, Karel Piwko, Jan Papoušek