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
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