You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Thomas Andraschko (JIRA)" <de...@myfaces.apache.org> on 2018/11/29 14:08:00 UTC

[jira] [Resolved] (MYFACES-3217) Integration tests for MyFaces core

     [ https://issues.apache.org/jira/browse/MYFACES-3217?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thomas Andraschko resolved MYFACES-3217.
----------------------------------------
    Resolution: Fixed

> Integration tests for MyFaces core
> ----------------------------------
>
>                 Key: MYFACES-3217
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3217
>             Project: MyFaces Core
>          Issue Type: Task
>    Affects Versions: 2.0.7, 2.1.1
>            Reporter: Jakob Korherr
>            Assignee: Jakob Korherr
>            Priority: Major
>             Fix For: 3.0.0-SNAPSHOT
>
>
> Some time ago we already talked about the need for integration tests for MyFaces core in order to ensure the quality of MyFaces code, but we never created something for this. Now after successfully releasing MyFaces CODI v1.0.0 with a working integration-test concept, it is time to apply this concept also on MyFaces core.
> The concept is simple: use an integration-test module that will be added to the MyFaces core build via profile (-Pintegration-tests) and thus will not be part of a release. This module consists of a support module containing general integration-test support classes (e.g. an abstract MyFacesIntegrationTest base class for all JUnit integration-tests) and various war-modules that contain the actual integration-tests.
> The war modules use the cargo maven plugin to start and stop a specific container (e.g. jetty or tomcat) and HtmlUnit to run tests against the running server. The HtmlUnit tests are executed with the maven failsafe plugin to ensure container shutdown in error cases.
> I already created three war-modules with the following configuration:
>   - servlet 2.5 and el 1.0 (jetty 7)
>   - servlet 2.5 and el 2.2 (jetty 6 and glassfish el)
>   - servlet 3.0 and el 2.2 (tomcat 7)
> These modules also already contain a very basic integration test, just as reference.
> The plan is to put basic tests that do not need any special configuration into these modules and to create new special war-modules for tests that need a specific configuration (e.g. MyFaces core on tomcat 6 with bean validation and client state saving enabled and ....). In addition, I plan to create an archetype for these integration-test war-modules.
> The long-term plan would be to have an integration-test for every jira issue on MyFaces core, thus implementing test-driven-development. With the complete infrastructure in place, it should not be very hard to create a test case for a jira issue (maybe even already by the user that reports the issue) and thus being able to fix issues a lot quicker and to ensure that new code or changes do not break anything.
> I will create a wiki page describing this stuff in more detail, also giving examples on how to create modules and tests and on how to debug tests.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)