Your configuration looks fine for your task, but I’m sorry - I have no hint, 
why IntelliJ is faster.

At first: it depends on, how your 500 Tests are organised. How many 
test-classes, how many methods do they have?
Are you running JUnit4 or already Junit5? Are you using Parallel-Mode in 
IntelliJ?
Can you see in the logs, how many times the spring-context is created & 
destroyed?

Looking at the code of the Unit-Execution on Intellij [1] and surefire [2] may 
bring some more insights, but I’m not familiar with both of them - it would 
really help to debug them.

[1] 
https://github.com/JetBrains/intellij-community/tree/master/plugins/junit_rt 
<https://github.com/JetBrains/intellij-community/tree/master/plugins/junit_rt>
[2] https://github.com/apache/maven-surefire 
<https://github.com/apache/maven-surefire>

> Am 08.01.2019 um 14:12 schrieb [email protected]:
> 
> 
> 
> On 2019/01/07 16:40:45, Robert Kleinschmager <[email protected]> 
> wrote: 
>> Hi Aleksandar,
>> 
>> Can you please show (attach|) your POM. Maybe your failsafe config is 
>> non-optimal.
>> In general: Intellij uses a different kind of junit execution, than 
>> failsafe/surefire
>> 
>> Kind regards
>> Robert
>> 
>>> Am 05.01.2019 um 12:20 schrieb Aleksandar Tokarev <[email protected]>:
>>> 
>>> I am having a Spring Boot application with around ~500 Tests (Unit and
>>> mostly Integration).
>>> 
>>> When i start running the tests in IntelliJ with second click -> Run all
>>> Tests - tests run in around 10-15mins.
>>> 
>>> When i try to run the tests with "mvn verify -P itest" in IntelliJ
>>> terminal, the execution time is around an hour. This is because this
>>> command starts and stops the Spring Test Runner Server on every class
>>> (which is not my desired result).
>>> 
>>> The IntelliJ second click -> Run all Tests starts it only once. Our Jenkins
>>> Job is running the tests with "mvn verify -P itest", so my question is how
>>> can i change this behavior, to start and stop the Test Runner only once
>>> (with this "mvn verify -P itest" command).
>>> 
>>> itest is the profile that we have in our pom.xml which includes the classes
>>> that contain integration tests (using maven failsafe plugin)
>>> 
>>> Here are the annotations of our base abstract Integration Test class
>>> 
>>> @RunWith(SpringJUnit4ClassRunner.class)
>>> @SpringBootTest(classes = MainApplication.class, webEnvironment =
>>> WebEnvironment.RANDOM_PORT)
>>> 
>>> I found this article which could by similar to my problem, but this does
>>> not explain the behavior that IntelliJ gives me.
>>> 
>>> Reset Spring-Boot During Integration Tests
>>> <https://stackoverflow.com/questions/44241936/reset-spring-boot-during-integration-tests>
>>> 
>>> Thanks a lot in advance
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>> 
>> <profiles>
>        <profile>
>            <id>itest</id>
>            <activation>
>                <activeByDefault>false</activeByDefault>
>            </activation>
>            <build>
>                <plugins>
>                    <plugin>
>                        <artifactId>maven-failsafe-plugin</artifactId>
>                        <configuration>
>                            <forkCount>1</forkCount>
>                            <reuseForks>false</reuseForks>
>                            <argLine>${args}</argLine>
>                            <testNGArtifactName>none:none</testNGArtifactName>
>                            <includes>
>                                <include>**/*ITests.java</include>
>                                <include>**/*IntegrationTests.java</include>
>                                <testFailureIgnore>true</testFailureIgnore>
>                            </includes>
>                            <environmentVariables>
>                                <HOME>${basedir}/target/test-classes</HOME>
>                                <SERVER_HOSTNAME>localhost</SERVER_HOSTNAME>
>                            </environmentVariables>
>                        </configuration>
>                        <executions>
>                            <execution>
>                                <goals>
>                                    <goal>integration-test</goal>
>                                    <goal>verify</goal>
>                                </goals>
>                            </execution>
>                        </executions>
>                    </plugin>
>                </plugins>
>            </build>
>        </profile>
>    </profiles>
> 
> Here is the config for my Failsafe plugin.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 

Reply via email to