[ 
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)

Reply via email to