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] >
