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