falcon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Venkatesan Ramachandran (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (FALCON-2024) Explore to make unit tests to run in parallel
Date Mon, 13 Jun 2016 22:07:03 GMT

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

Venkatesan Ramachandran updated FALCON-2024:
--------------------------------------------
    Description: 
Currently the Falcon unit tests are run in highest level of separation in JUnit using the
following definition where each test class is run in separate JVM and each test case one after
another causing the test phase to take a lot of time.

     <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.16</version>
            <configuration>
                <redirectTestOutputToFile>true</redirectTestOutputToFile>
                <forkCount>1</forkCount>
                <reuseForks>false</reuseForks>
                <forkMode>always</forkMode>
                <argLine>-Djava.awt.headless=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc=</argLine>
                <excludedGroups>${excluded.test.groups}</excludedGroups>
            </configuration>
        </plugin>

Explore the possibility of setting forkCount/parallel to higher level to achieve parallelism.

{quote}
The modes forkCount=0 and forkCount=1/reuseForks=true can be combined freely with the available
settings for parallel.

As reuseForks=false creates a new JVM process for each test class, using parallel=classes
would have no effect. You can still use parallel=methods, though.

When using reuseForks=true and a forkCount value larger than one, test classes are handed
over to the forked process one-by-one. Thus, parallel=classes would not change anything. However,
you can use parallel=methods: classes are executed in forkCount concurrent processes, each
of the processes can then use threadCount threads to execute the methods of one class in parallel.

Regarding the compatibility with multi-module parallel maven builds via -T, the only limitation
is that you can not use it together with forkCount=0.
{quote}

  was:
Currently the Falcon unit tests are run in highest level of separation in JUnit using the
following definition where each test class is run in separate JVM and each test case one after
another causing the test phase to take a lot of time.

     <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.16</version>
            <configuration>
                <redirectTestOutputToFile>true</redirectTestOutputToFile>
                <forkCount>1</forkCount>
                <reuseForks>false</reuseForks>
                <forkMode>always</forkMode>
                <argLine>-Djava.awt.headless=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc=</argLine>
                <excludedGroups>${excluded.test.groups}</excludedGroups>
            </configuration>
        </plugin>

Explore the possibility of setting forkCount/parallel to higher level to achieve parallelism.


> Explore to make unit tests to run in parallel
> ---------------------------------------------
>
>                 Key: FALCON-2024
>                 URL: https://issues.apache.org/jira/browse/FALCON-2024
>             Project: Falcon
>          Issue Type: Improvement
>          Components: tests
>            Reporter: Venkatesan Ramachandran
>            Assignee: Venkatesan Ramachandran
>
> Currently the Falcon unit tests are run in highest level of separation in JUnit using
the following definition where each test class is run in separate JVM and each test case one
after another causing the test phase to take a lot of time.
>      <plugin>
>             <groupId>org.apache.maven.plugins</groupId>
>             <artifactId>maven-surefire-plugin</artifactId>
>             <version>2.16</version>
>             <configuration>
>                 <redirectTestOutputToFile>true</redirectTestOutputToFile>
>                 <forkCount>1</forkCount>
>                 <reuseForks>false</reuseForks>
>                 <forkMode>always</forkMode>
>                 <argLine>-Djava.awt.headless=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc=</argLine>
>                 <excludedGroups>${excluded.test.groups}</excludedGroups>
>             </configuration>
>         </plugin>
> Explore the possibility of setting forkCount/parallel to higher level to achieve parallelism.
> {quote}
> The modes forkCount=0 and forkCount=1/reuseForks=true can be combined freely with the
available settings for parallel.
> As reuseForks=false creates a new JVM process for each test class, using parallel=classes
would have no effect. You can still use parallel=methods, though.
> When using reuseForks=true and a forkCount value larger than one, test classes are handed
over to the forked process one-by-one. Thus, parallel=classes would not change anything. However,
you can use parallel=methods: classes are executed in forkCount concurrent processes, each
of the processes can then use threadCount threads to execute the methods of one class in parallel.
> Regarding the compatibility with multi-module parallel maven builds via -T, the only
limitation is that you can not use it together with forkCount=0.
> {quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message