Arquillian Extension Jacoco 1.0.0.Alpha4 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.Alpha4 release of the Arquillian Extension Jacoco 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 Extension Jacoco
Version 1.0.0.Alpha4 view tag
Release date 2012-11-27
Released by Aslak Knutsen
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-jacoco jar javadoc pom

Release notes and resolved issues 4

EclEmma IDE support

Feature Request
  • ARQ-1114 - Configure Location of jacoco.exec File
  • ARQ-1219 - Only collect remote coverage data when running in coverage mode
  • ARQ-1220 - Make Remote Coverage data available to IDE

Thanks to the following list of contributors: Aslak Knutsen,

Arquillian Transaction Extension 1.0.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.0.0.Alpha3 release of the Arquillian Transaction 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 Transaction Extension
Version 1.0.0.Alpha3 view tag
Release date 2012-11-16
Released by Aslak Knutsen
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-transaction-api jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-transaction-spi jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-transaction-impl-base jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-transaction-jta jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-transaction-bom pom

Release notes and resolved issues 3

Container Transactions and Default mode

Enhancement
  • ARQ-1185 - Transaction extension should also work for in-container tests
  • ARQ-1186 - Default transaction mode should be configurable through arquillian.xml

Thanks to the following list of contributors: Bartosz Majsak, Aslak Knutsen

Arquillian Transaction Extension 1.0.0.Alpha2 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.Alpha2 release of the Arquillian Transaction Extension component!

JTA implementation

The time has come to extract the JTA transactions support from Arquillian Persistence Extension and move it over to the Transaction Extension. It was in fact quite a natural refactoring step. This opens the possibility of providing a different transaction manager to your (not only) persistence related tests. Many thanks to Jakub Narloch for bringing the Transaction Extension to life as a top level module and helping with this release!

Future releases of the Arquillian Persistence Extension will ship with the JTA extension implementation as a dependency, but the Persistence Extension API will change to the new API from the Transaction Extension. Since the Persistence Extension is using the transaction provider SPI you will be able to change the implementation without a need to adopt your test code to whatever comes in the future.

Usage

Just include this in your dependencies to leverage the JTA implementation within the container of your choice.

pom.xml
<dependency>
  <groupId>org.jboss.arquillian.extension</groupId>
  <artifactId>arquillian-transaction-jta</artifactId>
  <version>1.0.0.Alpha2</version>
</dependency>

New SPI hook

The TransactionEnabler interface has been introduced to the SPI. It gives the option to alternate the strategy for enabling transactions. This is particularly handy for the Persistence Extension where we automatically wrap annotations like @UsingDataSet or @ShouldMatchDataSet in a transaction. For reference you may take a look at the new SPI interface and the related tests.

That’s pretty much it! We look forward to hearing your feedback about this release 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 Transaction Extension
Version 1.0.0.Alpha2 view tag
Release date 2012-10-29
Released by Aslak Knutsen
Compiled against

Published artifacts org.jboss.arquillian.extension

  • org.jboss.arquillian.extension » arquillian-transaction-api jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-transaction-spi jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-transaction-impl-base jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-transaction-jta jar javadoc pom
  • org.jboss.arquillian.extension » arquillian-transaction-bom pom

Release notes and resolved issues 6

Embedded Container and JTA support

Enhancement
  • ARQ-1137 - Provide a way to alter logic determining if transaction support is required
  • ARQ-1156 - Improve resource handling
Feature Request
  • ARQ-1074 - TransactionProvider should be supported on client side
  • ARQ-1155 - Make JNDI transaction name configurable
Sub-task
  • ARQ-1069 - JTA implementation for Transaction Extension

Thanks to the following list of contributors: Bartosz Majsak, Aslak Knutsen, Jakub Narloch

Arquillian Drone Extension 1.1.0.Final Released

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

The Arquillian team is proud to announce the 1.1.0.Final release of the Arquillian Drone Extension component!

We’ve introduced new features in 1.1.0.Final while still preserving backwards compatibility with 1.0.0.Final. There’s now a much simpler way to configure Drone, better support for the Opera browser and support for browsers on iOS devices.

Significant changes since 1.0.0.Final

Browser capabilities instead of implementationClass and native capability configuration

Think of any WebDriver capability, such as opera.no_restart or acceptSSLCerts, and you can now specify it directly in arquillian.xml:

arquillian.xml
<extension qualifier=“webdriver”>
<property name=“browserCapabilities”>opera</property>
<property name=“opera.no_restart”>true</property>
<property name=“acceptSSLCerts”>false</property>
</extension>
Support for reusable browsers

Reusable browsers stay connected even if you finish the tests. This will speed up turnaroud when developing the application. Reusable browsers are based on top of remote browsers, so you’ll need Selenium Hub (run selenium-server-standalone-2.25.0.jar) running during your tests. This is how you enable them (remoteAddress is optional, default value listed here):

arquillian.xml
<extension qualifier=“webdriver”>
<property name=“browserCapabilities”>chrome</property>
<property name=“remoteReusable”>true</property>
<property name=“remoteAddress”>http://localhost:4444/wd/hub</property>
</extension>
Better support for the Opera browser
Support for browsers on iOS devices
Deprecated Arquillian Drone system properties configuration

The system properties configuration provided by Arquillian Core is now the preferred way to configure Arquillian Drone. The old style of system properties still work, but using them will produce warnings in the log and will be removed completely in a future version. Now use arq.extension.extensionName.propertyName to override a value from arquillian.xml file

I’d like to thank everybody from the community eagerly adopting new releases, discovering bugs and providing bugfixes. You guys are awesome!

We hope that you’ll enjoy the improvements. We 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.1.0.Final view tag
Release date 2012-10-24
Released by Aslak Knutsen
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
Enhancement
  • ARQ-929 - Drone: Switch useJavaScript to true by default
  • ARQ-1165 - Remove ChromeDriver tests exclusions
Feature Request
  • ARQ-1164 - Use default Chrome location for tests
Bug
  • ARQ-1048 - RemoteWebDriver ignores old configuration properties
  • ARQ-1110 - can't create an instance of IPhoneDriver
  • ARQ-1113 - Add @Deprecation to ConfigurationMapper.fromSystemConfiguration
Sub-task
  • ARQ-1112 - Verify Arquillian Drone can run on JDK 1.5

Thanks to the following list of contributors: Karel Piwko, Aslak Knutsen, Jan Papoušek

Graphene 2.0.0.Alpha2 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.Alpha2 release of the Graphene component!

Graphene 2 is building on top of the Selenium WebDriver API and provide extensions for writing reusable, robust and AJAX-enabled tests with improved readability.

Graphene 2 uses the ideas from Graphene 1 (based on Selenium 1 API) and applies it to the world of Selenium WebDriver.

You can read more about the difference between Graphene 1 and Graphene 2 in the Reference Documentation

Features

Page Abstractions

Page abstractions allow you to abstract page functionality using the well-known Selenium design pattern Page Objects. In Graphene you can inject page objects directly into the test case using the @Page annotation.

But we take the Page Objects pattern one step further with the concept of Page Fragments . Page Fragments are reusable parts within a page encapsulated into an object similar to Page Objects. A good example of Page Fragments are JavaScript widgets or forms.

The concept of Page Fragments comes from an idea that those components share a same underlying DOM structure, the only difference between all occurences of a component is a location in a DOM tree where a component is rendered – this is denoted by the @Root annotation. You can define this root location for each concrete occurence using a @FindBy(locator) annotation.

Fluent-API for Waiting Conditions

Graphene provides a set of widely used conditions to avoid writing them repeatedly.

Request Guards

Request guards block the Selenium test execution until a network communication caused by a given action ends. Guards support blocking on HTTP and XHR (AJAX) but can also be used to verify that no such requests were done.

Under the Hood

There are some low level features exposed as API that are used by Graphene internally. While not used regularly within a normal test, can be handy to write more robust tests:

JavaScript Interface

This allows you to write a Java interface which automatically translates Java API invocations to JavaScript calls:

@JavaScript
public interface Document {
    String getTitle();
}
Page Extensions

Page Extensions allow you to inject arbitrary JavaScript code in the page under the test. The javascript code might help you to test complex situations as well as bring completely new features for improving testing. Graphene internally uses Page Extensions for Request Guards.

Graphene Context

Graphene allows you to obtain current thread-local context of a browser session and inject it exactly where you need. No more need for driver reference propagation.

Documentation

Last but definitely not the least addition is the great documentation for all of the features above including answers for general questions like how Selenium 1, Graphene 1, Selenium WebDriver and Graphene 2 relates to each other, what’s the relation between Graphene’s, Drone and Arquillian.

Getting Started

It’s the same as with any other Arquillian extension: open the IDE, setup the Maven dependency and you are ready to start testing!

What’s next?

In the upcoming releases, we would like to focus on more new features as well as migrate some features from Graphene 1 to Graphene 2:

  • Forge plugin for quick start
  • command interceptors
  • parallel browser session control
  • jQuery/Sizzle locators
  • AJAX/HTTP Communication Halter
  • page abstraction improvements
  • closer integration with the Arquillian event system
  • helpers for writing browser specific code

Call to Action

Let us know what you think and help us shape Graphene to be what you want it to be.

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.Alpha2 view tag
Release date 2012-09-12
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-impl jar javadoc pom
  • org.jboss.arquillian.graphene » graphene-webdriver-drone jar javadoc pom
  • org.jboss.arquillian.graphene » graphene-webdriver pom
  • org.jboss.arquillian.graphene » graphene-webdriver-spi jar javadoc pom
  • org.jboss.arquillian.graphene » arquillian-graphene pom
  • org.jboss.arquillian.graphene » graphene-component-api jar javadoc pom

Release notes and resolved issues 30

Adopting critical functionality from Graphene 1; Page Fragments

Component Upgrade
  • ARQGRA-150 - Upgrade to Arquillian Core 1.0.2.Final
Feature Request
  • ARQGRA-40 - Support for Component Objects pattern for Selenium 2
  • ARQGRA-41 - Support for Java-to-JavaScript calling interfaces
  • ARQGRA-62 - Umbrella: Adopt Graphene for usage of WebDriver/Selenium 2 API
  • ARQGRA-67 - Migrate request guards to Selenium 2
  • ARQGRA-71 - Adopt JavaScript injection (Page Extensions) for Selenium 2
  • ARQGRA-74 - Support Graphene utility in original scope with Selenium 2
  • ARQGRA-156 - Introduce Opera and RemoteWebDriver factory wrappers
  • ARQGRA-157 - Support XHR interception
  • ARQGRA-160 - Create a configurator for Graphene 2 using arquillian.xml
  • ARQGRA-161 - Introduce profile to enable execution from several browsers
  • ARQGRA-179 - Document difference between Graphene 1 and Graphene 2 (Selenium 1 and WebDriver)
  • ARQGRA-180 - Document Graphene - Getting Started
  • ARQGRA-181 - Document Using WebDriver
  • ARQGRA-182 - Document Using Drone
  • ARQGRA-183 - Document Testing AJAX
Bug
  • ARQGRA-6 - Using of JQuery 1.5 causes that JQuery selectors are not escaped properly
  • ARQGRA-151 - Graphene.getProxyForInterfaces returns wrong proxy
  • ARQGRA-159 - Use Drone depchain in Graphene depchain
Task
  • ARQGRA-132 - Add BOM usage into documentation
  • ARQGRA-158 - Check and complete all documentation for all features in Alpha2
  • ARQGRA-163 - Refactor Graphene Webdriver SPI module
  • ARQGRA-171 - Refactor Component Objects - mainly make Component Obejcts as POJO
  • ARQGRA-172 - Documentation for Page Extensions
  • ARQGRA-173 - Documentation for Page Fragments
  • ARQGRA-175 - Documentation for JavaScript interfaces
  • ARQGRA-176 - Documentation for GrapheneContext and proxies
  • ARQGRA-177 - Documentation for Request Guards
  • ARQGRA-178 - Documentation for Graphene utility class
  • ARQGRA-186 - Rename Component Objects dependencies to Page Fragments

Thanks to the following list of contributors: Jan Papoušek, Lukas Fryc, Juraj Huska, Brian Leathem