[richfaces-planning-issues] [JBoss JIRA] (RFPL-3268) Reimplement MatrixConfigurator in Metamer tests

Jiří Štefek (JIRA) issues at jboss.org
Mon May 12 05:05:56 EDT 2014


    [ https://issues.jboss.org/browse/RFPL-3268?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12951855#comment-12951855 ] 

Jiří Štefek edited comment on RFPL-3268 at 5/12/14 5:04 AM:
------------------------------------------------------------

Because the Arquillian extension was not easily implementable as a testing framework independent solution, the MatrixConfigurator was replaced by using of a TestNG's @DataProvider.

The TestNG was updated to latest version. 

The features:
* The tested/supported templates are specified in value of {{@Templates}} annotation of first found field in hierarchy of test (from offspring to parent) ( == maybe as before).
* The plain template is activated by default as before.
* To run tests in all templates one can now use either {{*}} or {{all}}.
* To run tests in specific template one can still use everything as before plus I've added some aliases for each template. One can now use e.g. {{-Dtemplates=edt}} for running tests in richExtendedDataTable. The aliases are in [Template|https://github.com/richfaces/richfaces-qa/blob/master/metamer/application/src/main/java/org/richfaces/tests/metamer/Template.java] class of Metamer Application. The aliases are case insensitive.
* The templates can now be run separately, e.g.: {{-Dtemplates=plain,edt,cp}} (plain, extendedDataTable, collapsiblePanel)
** all tests will run in each specified template, templates separator is {{comma}}
** one can even use {{-Dtemplates=plain,*}} which will run all tests in plain template and in all supported templates (there will be 2 tests for plain template).
* The templates can now be run concurrently, e.g.: {{-Dtemplates=acc+edt,cp}} (1st configuration: EDT inside accordion, 2nd configuration: collapsible panel)
* One can configure a test class/method to run or to not run with specific templates using @Templates (as before)
* The {{@Use}} parameter was separated to {{@UseForAllTests}} and {{@UseWithField}}.
**  {{@Inject}} was deleted
** {{@UseForAllTests}} for marking field, that will be used for configuration in all tests
** {{@UseWithField}} for marking method, that will use a field for configuration
** {{@Uses}} can now only accept {{@UseWithField}} annotations
** {{@UseForAllTests}} and {{@UseWithField}} can be used concurrently
** the supported types for fields are Strings, Enums, and everything not primitive (can be fixed) from field


was (Author: jstefek):
Because the Arquillian extension was not easily implementable as a testing framework independent solution, the MatrixConfigurator was replaced by using of a TestNG's @DataProvider.

The TestNG was updated to latest version. 

The features:
* The tested/supported templates are specified in value of {{@Templates}} annotation of first found field in hierarchy of test (from offspring to parent) ( == maybe as before).
* The plain template is activated by default as before.
* To run tests in all templates one can now use either {{*}} or {{all}}.
* To run tests in specific template one can still use everything as before plus I've added some aliases for each template. One can now use e.g. {{-Dtemplates=edt}} for running tests in richExtendedDataTable. The aliases are in [Template|https://github.com/richfaces/richfaces-qa/blob/master/metamer/application/src/main/java/org/richfaces/tests/metamer/Template.java] class of Metamer Application. The aliases are case insensitive.
* The templates can now be run separately, e.g.: {{-Dtemplates=plain,edt,cp}} (plain, extendedDataTable, collapsiblePanel)
** all tests will run in each specified template, templates separator is {{comma}}
** one can even use {{-Dtemplates=plain,*}} which will run all tests in plain template and in all supported templates (there will be 2 tests for plain template).
* The templates can now be run concurrently, e.g.: {{-Dtemplates=acc>edt,cp}} (1st configuration: EDT inside accordion, 2nd configuration: collapsible panel)
* One can configure a test class/method to run or to not run with specific templates using @Templates (as before)
* The {{@Use}} parameter was separated to {{@UseForAllTests}} and {{@UseWithField}}.
**  {{@Inject}} was deleted
** {{@UseForAllTests}} for marking field, that will be used for configuration in all tests
** {{@UseWithField}} for marking method, that will use a field for configuration
** {{@Uses}} can now only accept {{@UseWithField}} annotations
** {{@UseForAllTests}} and {{@UseWithField}} can be used concurrently
** the supported types for fields are Strings, Enums, and everything not primitive (can be fixed) from field

> Reimplement MatrixConfigurator in Metamer tests
> -----------------------------------------------
>
>                 Key: RFPL-3268
>                 URL: https://issues.jboss.org/browse/RFPL-3268
>             Project: RichFaces Planning
>          Issue Type: Task
>      Security Level: Public(Everyone can see) 
>          Components: QE
>            Reporter: Pavol Pitonak
>            Assignee: Jiří Štefek
>             Fix For: 5.0.0.Alpha4
>
>
> Metamer component enabling us to run tests in various templates and to run tests with parameters.
> Problems of current implementation:
> * Implemented as a TestNG interceptor, i.e. it cannot work with JUnit (which is used by all other RichFaces tests) 
> * We cannot upgrade to latest version of TestNG (not sure why, probably a bug in TestNG interceptors, it skips tests)
> Requirements for new implementation (almost identical to current implementation):
> * It should work with both TestNG and JUnit (preferably implemented as an Arquillian extension)
> * I can run tests in plain template: mvn clean verify
> * I can run tests in all templates: mvn clean verify -Dtemplates=*
> * I can run tests in all templates using "all" (asterisk cannot be used in Jenkins matrix): mvn clean verify -Dtemplates=all
> * I can run tests in one specific template: mvn clean verify -Dtemplates=richList
> * I can run tests in two or more specific templates (each separately): mvn clean verify -Dtemplates=richList,richDataTable, i.e. each test will run twice - once in richList template and once in richDataTable template
> * I can run tests in two or more specific templates (applied all at once): mvn clean verify -Dtemplates=richList,richDataTable, i.e. each test will run once - with both richList and richDataTable templates activated concurently, comma cannot be used as separator - optional feature?
> * I can configure a test class/method to run with specific templates using @Templates (as is now)
> * I can configure a test class/method not to run with specific templates using @Templates (as is now)
> * I can configure a test to run with multiple parameters using @Inject, @Use (as is now)



--
This message was sent by Atlassian JIRA
(v6.2.3#6260)



More information about the richfaces-planning-issues mailing list