[arquillian-issues] [JBoss JIRA] (ARQ-1902) Provide SPI for conditional execution of test methods

Stefan Miklosovic (JIRA) issues at jboss.org
Tue Jan 20 12:02:49 EST 2015


     [ https://issues.jboss.org/browse/ARQ-1902?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stefan Miklosovic updated ARQ-1902:
-----------------------------------
    Description: 
[~aslak]

Let me explain.

We want to do this:

{code}
@RunWith(Arquillian.class)
@RunAsClient
public class TestCase
{
    @Test
    @Jira("ARQ-1")
    public void test() {
        // this test method will be executed 
        // because Aslak created EJB Jar archive (JIRA status = done)
    }

    @Test
    @Jira("ARQ-xyz")
    public void test() {
        // this methods will NOT be executed (will be skipped)
        // becase lets say that its status is "open / unresolved"
    }
}
{code}

While looking into the code, it seems these classes are most important (1), (2).

So my initial approach was that I wanted to kind of "hook" into that execution and dynamically resolve if that test method is going to be executed or not but I am failing to do so since there is not any SPI which would load my test-method-execution-decider which would tell if that method is going to be executed or if it will be marked as skipped.

In that decider, I would dynamically log in to jira and read if that jira is resolved or nor and behave accordingly.

Is there any will to push this to upstream once implemented? Default decider would indeed execute that method every time and I would just put my own decider on class path in custom extension.

(1) https://github.com/arquillian/arquillian-core/blob/master/container/test-impl-base/src/main/java/org/jboss/arquillian/container/test/impl/execution/ClientTestExecuter.java#L44

(2) https://github.com/arquillian/arquillian-core/blob/master/container/test-impl-base/src/main/java/org/jboss/arquillian/container/test/impl/execution/LocalTestExecuter.java#L55

  was:
[~aslak]

Let me explain.

We want to do this:

{code}
@RunWith(Arquillian.class)
@RunAsClient
public class TestCase
{
    @Test
    @Jira("ARQ-1")
    public void test() {
        // this test method will be executed 
        // because Aslak created EJB Jar archive (JIRA status = done)
    }

    @Test
    @Jira("ARQ-xyz")
    public void test() {
        // this methods will NOT be executed (will be skipped)
        // becase lets say that its status is "open / unresolved"
    }
}
{/code}

While looking into the code, it seems these classes are most important (1), (2).

So my initial approach was that I wanted to kind of "hook" into that execution and dynamically resolve if that test method is going to be executed or not but I am failing to do so since there is not any SPI which would load my test-method-execution-decider which would tell if that method is going to be executed or if it will be marked as skipped.

In that decider, I would dynamically log in to jira and read if that jira is resolved or nor and behave accordingly.

Is there any will to push this to upstream once implemented? Default decider would indeed execute that method every time and I would just put my own decider on class path in custom extension.

(1) https://github.com/arquillian/arquillian-core/blob/master/container/test-impl-base/src/main/java/org/jboss/arquillian/container/test/impl/execution/ClientTestExecuter.java#L44

(2) https://github.com/arquillian/arquillian-core/blob/master/container/test-impl-base/src/main/java/org/jboss/arquillian/container/test/impl/execution/LocalTestExecuter.java#L55



> Provide SPI for conditional execution of test methods
> -----------------------------------------------------
>
>                 Key: ARQ-1902
>                 URL: https://issues.jboss.org/browse/ARQ-1902
>             Project: Arquillian
>          Issue Type: Feature Request
>          Components: Base Implementation
>    Affects Versions: 1.1.5.Final
>            Reporter: Stefan Miklosovic
>
> [~aslak]
> Let me explain.
> We want to do this:
> {code}
> @RunWith(Arquillian.class)
> @RunAsClient
> public class TestCase
> {
>     @Test
>     @Jira("ARQ-1")
>     public void test() {
>         // this test method will be executed 
>         // because Aslak created EJB Jar archive (JIRA status = done)
>     }
>     @Test
>     @Jira("ARQ-xyz")
>     public void test() {
>         // this methods will NOT be executed (will be skipped)
>         // becase lets say that its status is "open / unresolved"
>     }
> }
> {code}
> While looking into the code, it seems these classes are most important (1), (2).
> So my initial approach was that I wanted to kind of "hook" into that execution and dynamically resolve if that test method is going to be executed or not but I am failing to do so since there is not any SPI which would load my test-method-execution-decider which would tell if that method is going to be executed or if it will be marked as skipped.
> In that decider, I would dynamically log in to jira and read if that jira is resolved or nor and behave accordingly.
> Is there any will to push this to upstream once implemented? Default decider would indeed execute that method every time and I would just put my own decider on class path in custom extension.
> (1) https://github.com/arquillian/arquillian-core/blob/master/container/test-impl-base/src/main/java/org/jboss/arquillian/container/test/impl/execution/ClientTestExecuter.java#L44
> (2) https://github.com/arquillian/arquillian-core/blob/master/container/test-impl-base/src/main/java/org/jboss/arquillian/container/test/impl/execution/LocalTestExecuter.java#L55



--
This message was sent by Atlassian JIRA
(v6.3.11#6341)


More information about the arquillian-issues mailing list