Arquillian Governor 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 Governor component!

Arquillian Governor Extension gives you the possibility to programmatically choose what test methods of your Arquillian tests are going to be executed and what are going to be skipped by putting your custom annotations on the test methods. The resolution of the test method execution is done during the test class execution in BeforeClass phase.

Currenly, there are two implementations which use API of the Arquillian Governor extension – Arquillian JIRA Governor extension and Arquillian Skipper extension.

Arquillian Governor JIRA

JIRA extension enables you to skip some test mehods which are in Unresolved or Open state in your JIRA instance, because you assume that if you run that test it would fail. Once that JIRA is resolved as Done, that test method will not be skipped.

You can even close your JIRAs directly from test methods when you force the execution despite the fact it should be skipped. If this test method passes successfully, you can close related JIRA issue from test. Let’s see it in action:

@RunWith(Arquillian.class)
public class TestCase
{
    @Test
    @Jira("ARQ-1907")
    public void test()
    {
        // this test will be run because ARQ-1907 is 'Done'
        // so we assume that this test has to pass as well
    }

    @Test
    @Jira("ARQ-5000")
    public void test2()
    {
        // if this JIRA exists and its status is 'Unresolved' or 'Open'
        // this test method will be skipped because you assume that
        // if you run it, it would fail
    }
    
    @Test
    @Jira("ARQ-5000", force = true)
    public void automaticClosingTest()
    {
        // when this JIRA exists and its status is 'Unresolved' / 'Open'
        // and you have forced its execution and you set 'closePassed'
        // property in arquillian.xml to 'true', if this test method succeeds,
        // it automatically resolves respective JIRA issue as 'Done'
    }

}

Arquillian Governor Skipper

On the other hand, Arquillian Governor Skipper extension adds one annotation – TestSpec – which describes your test method in more details. This information is reported to Arquillian Reporter and it is seamlessly integrated to Arquillian testing reports hence you have betteroverview about the state of your test suite.

If status is set to Status.AUTOMATED, test method will be run, if it is Status.MANUAL, it will be skipped.

@Test
@TestSpec(
    author = "Stefan Miklosovic",
    assertion = "this test should pass",
    feature = "tests if true returns true",
    issue = "ARQ-1",
    prerequisites = "have java",
    status = Status.AUTOMATED,
    steps = "some steps in order to execute this test",
    test = "what does this test do"
    )
public void someTest() {
    Assert.assertTrue(true);
}

How to use these extensions in depth is described in the exhaustive readme.

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 Governor
Version 1.0.0.Alpha1 view tag
Release date 2015-05-05
Released by Stefan Miklosovic
Compiled against

Published artifacts org.arquillian.extension

  • org.arquillian.extension » arquillian-governor-spi jar javadoc pom
  • org.arquillian.extension » arquillian-governor-api jar javadoc pom
  • org.arquillian.extension » arquillian-governor jar javadoc pom
  • org.arquillian.extension » arquillian-governor-jira jar javadoc pom
  • org.arquillian.extension » arquillian-governor-skipper jar javadoc pom

Thanks to the following list of contributors: Stefan Miklosovic, Aslak Knutsen

Arquillian Extension Jacoco 1.0.0.Alpha8 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.Alpha8 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.Alpha8 view tag
Release date 2015-04-20
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 2

Jacoco 0.7.4 and Signature removal

Feature Request
Bug
  • ARQ-1936 - Jacoco Extension needs signature removal

Thanks to the following list of contributors: Aslak Knutsen, Arcadiy Ivanov

Arquillian Cube Extension 1.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 1.0.0.Alpha5 release of the Arquillian Cube Extension component!

What’s included in the Alpha5 release?

New CubeController APIs

The CubeController API got a bit of an upgrade and you can now programtically do things like copy files and check internal states.

  • Copy files from Container
void copyFileDirectoryFromContainer(String cubeId, String from, String to)
  • See changes to the filesystem
List<ChangeLog> changesOnFilesystem(String cubeId);
  • Output running Container processes
TopContainer top(String cubeId);
  • Copy log files
void copyLog(String cubeId, boolean follow, boolean stdout, boolean stderr, boolean timestamps, int tail, OutputStream outputStream);
New external configuration file

The configuration property dockerContainers or dockerContainersFile can now be replaced by simply having a file on classpath called cube. If the file exists and the dockerContainersX configuration options are not set then this file will be read instead. The format of the content of the file is still the same.

Default await strategy changed

The default await strategy has up until now been NativeAwaitStrategy which use the Docker API to see if the container has started or not. This highly depends on the container and how it’s written.

In Alpha5 the default strategy has changed to use PollingAwaitStrategy with the ss option. Now Cube will not determine the container started until all confiugred ports are available. The check is done from inside the container to avoid any false positives of rerouted port being opened before bound on the target container.

What is Arquillian Cube Extension?

With Arquillian Cube you can control the lifecycle of Docker images as part of the test lifecyle, either automatically or manually. This gives you the chance to scale up from a integration/functional test level all the way up to the system test level.

Release details

Component Arquillian Cube Extension
Version 1.0.0.Alpha5 view tag
Release date 2015-04-07
Released by Aslak Knutsen
Compiled against

Published artifacts org.arquillian.cube

Release notes and resolved issues 6

Bug
Enhancement

Thanks to the following list of contributors: Alex Soto, Aslak Knutsen

Arquillian Spacelift 1.0.0.Alpha7 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.Alpha7 release of the Arquillian Spacelift 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 Spacelift
Version 1.0.0.Alpha7 view tag
Release date 2015-03-20
Released by Karel Piwko
Compiled against

Published artifacts org.arquillian.spacelift

  • org.arquillian.spacelift » arquillian-spacelift-api jar javadoc pom
  • org.arquillian.spacelift » arquillian-spacelift jar javadoc pom

Release notes and resolved issues 0

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

Arquillian Droidium 1.0.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.0.0.Final release of the Arquillian Droidium component!

We are proud to announce the first final release of Arquillian Droidium component. There were lot of alpha releases where we were polishing stability and API for developers.

Arquillian Droidium is its simplicity the container for Android, both Android emulators and physical devices. Arquillian Droidium makes testing of your Android application, when it comes to functional testing, a breeze.

The biggest strength of Arquillian Droidium lays in its simplicity. Droidium is very smart in hiding unnecessary boiler plate code you have to set up every time. Droidium tests are very clean, easy to read and maintain. You can focus purely on your testing logic.

Arquillian Droidium consists of two core extensions. The first one implements Android container as such, deployment of APKs to your device, starting, stopping and connecting to your Android devices and so one. The second core extension, Droidium Native extension, brings functional testing to your mobile environment.

Functional testing of Android devices is enabled by using the Selendroid libraries. Droidium integrates seamlessly with Arquillian Graphene and Arquillian Drone extensions to deliver first class on-steroids Selenium testing experience in mobile environments.

Arquillian Droidium is not afraid of other container adapters on its classpath at all. You are able to run your Arquillian tests with Android device as well as with your ordinary Java EE container simultaneously. This brings interesting testing scenarios into play where you can deploy your backend Java EE application into ordinary container and you can test your Android APK which communicates with your Java EE backend.

But there is more! Not only you can mix these containers together, you can run more Android containers concurrently which brings even more interesting testing scenarios, where you can test the communication between Android devices very easily.

Arquillian Droidium is able to record your tests as well. You can take screenshots of your Android device along the test execution and these screenshots will be persisted for further inspection in a very concise Arquillian report e.g. as an HTML file.

But we have not stopped with screenshots. You can even take videos of your Android tests directly in the test class via the very simple recorder API.

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 Droidium
Version 1.0.0.Final view tag
Release date 2015-03-10
Released by Stefan Miklosovic
Compiled against

Published artifacts org.arquillian.extension

  • org.arquillian.extension » arquillian-droidium-platform-spi jar javadoc pom
  • org.arquillian.extension » arquillian-droidium-platform jar javadoc pom
  • org.arquillian.container » arquillian-droidium-container-api jar javadoc pom
  • org.arquillian.container » arquillian-droidium-container-spi jar javadoc pom
  • org.arquillian.container » arquillian-droidium-container jar javadoc pom
  • org.arquillian.extension » arquillian-droidium-multiple-containers jar javadoc pom
  • org.arquillian.protocol » arquillian-protocol-android jar javadoc pom
  • org.arquillian.extension » arquillian-droidium-native-api jar javadoc pom
  • org.arquillian.extension » arquillian-droidium-native-spi jar javadoc pom
  • org.arquillian.extension » arquillian-droidium-native jar javadoc pom
  • org.arquillian.droidium.archetype » arquillian-droidium-archetype-native-test jar javadoc pom
  • org.arquillian.extension » arquillian-droidium-screenshooter jar javadoc pom
  • org.arquillian.extension » arquillian-droidium-recorder jar javadoc pom

Release notes and resolved issues 7

Bug
  • ARQ-1919 - Android SDK with no images fails while testing on physical device
Task
  • ARQ-1916 - Update Droidium to Arquillian 1.1.7
  • ARQ-1917 - Update Droidium to Spacelift 1.0.0.Alpha6
  • ARQ-1920 - Update Droidium to use Selendroid 0.14.0
  • ARQ-1928 - Update Droidium to use Arquillian Recorder 1.0.0.Final
  • ARQ-1933 - Update Droidium to use Selendroid 0.15.0
  • ARQ-1934 - Update Droidium to use Drone 2.0.0.Alpha4

Thanks to the following list of contributors: Stefan Miklosovic