[arquillian-issues] [JBoss JIRA] Issue Comment Edited: (ARQ-287) Add support for filtering tests based on required execution environment

Aslak Knutsen (JIRA) jira-events at lists.jboss.org
Sun Sep 12 12:24:19 EDT 2010


    [ https://jira.jboss.org/browse/ARQ-287?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12550394#action_12550394 ] 

Aslak Knutsen edited comment on ARQ-287 at 9/12/10 12:24 PM:
-------------------------------------------------------------

Both proposals are based on @ProvidedBy which is a hard coding of package name expressions for the given Containers. This approach does not scale at all. If at all, this should be moved down to the Container. 

But then the issues becomes, who am i(the container dev) to force no support for CDI in JBoss 5. Someone might have hacked it up.. The users knowns better then we do what the containers he is running against supports. 

This approach also makes the api 'dependent' on technology related terms like EJB, EE, CDI, etc.. (technology come and go, arquillian is here to stay.. ;)


A much simpler approach would be to let the user define some sort of group names that make sense to him and his test suite, where he could add filtering of the groups e.g. in arquillian.xml pr Container.

e.g.

@Group("Messaging-BackendSystem-1-Test")
@RunWith(Arquillian.class)
public test MyTest() {}

arquillian.xml:

<jboss:container id="messaging-backend">
  <group>Messaging-BackendSystem-1-Test</group>
 ..
</jboss:container>

<jboss:container id="messaging-front">
  <group>Messaging-FrontendSystem-1-Test</group>
 ..
</jboss:container>


Note: multiple containers of the same type can be added, but represent different things to the user. All EE6 tests are not necessarily fit for all configured EE servers.

      was (Author: aslak):
    Both proposals are based on @ProvidedBy which is a hard coding of package name expressions for the given Containers. This approach does not scale at all. If at all, this should be moved down to the Container. 

But then the issues becomes, who am i(the container dev) to force no support for CDI in JBoss 5. Someone might have hacked it up.. The users knowns better then we do what the containers he is running against supports. 

This approach also makes the api 'dependent' on technology related terms like EJB, EE, CDI, etc.. (technology come and go, arquillian is here to stay.. ;)


A much simpler approach would be to let the user define some sort of group names that make sense to him and his test suite, where he could add filtering of the groups e.g. in arquillian.xml pr Container.

e.g.

@Group("Messaging-BackendSystem-1-Test")
@RunWith(Arquillian.class)
public test MyTest() {}

arquillian.xml:

<jboss:container>
  <group>Messaging-BackendSystem-1-Test</group>
 ..
</jboss:container>
  
> Add support for filtering tests based on required execution environment
> -----------------------------------------------------------------------
>
>                 Key: ARQ-287
>                 URL: https://jira.jboss.org/browse/ARQ-287
>             Project: Arquillian
>          Issue Type: Feature Request
>          Components: Configuration
>    Affects Versions: 1.0.0.Alpha4
>            Reporter: Dan Allen
>            Assignee: Dan Allen
>             Fix For: 1.0.0.Beta1
>
>
> Allow the developer to declaratively specify the execution environment required for a given test to function. Then, Arquillian should filter out tests that require an execution environment that the target container doesn't provide. (In other words, only execute a test case if the target container provides the execution environment the test requires).
> To support this feature, we need to introduce the concept of an execution environment definition into the API and a mechanism for indicating which containers provide a given execution environment. The developer experience will be something like:
> @Retention(RetentionPolicy.RUNTIME)
> @Target(ElementType.TYPE)
> @RequiresEnvironment(JavaEE6Environment.class)
> public @interface RequiresJavaEE6 {}
> @RunWith(Arquillian.class)
> @RequiresJavaEE6
> public class MyTestCase { ... }
> or
> @RunWith(Arquillian.class)
> @RequiresEnvironment(JavaEE6Environment.class)
> public class MyTestCase { ... }
> Formal proposals and prototypes will be submitted as branches in github.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the arquillian-issues mailing list