Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[@SerenityWithCucumber] Report Portal creates redundant launches for multi module project #63

Closed
nstbushneva opened this issue Mar 10, 2019 · 6 comments
Milestone

Comments

@nstbushneva
Copy link

nstbushneva commented Mar 10, 2019

On running tests in multimodule test-automation-framework, Report Portal creates a separate launch for each module. It generates redundant launches for modules which don't have any tests with the specified tag.
redundant-launch

Would it be possible to keep all tests results in one launch even though tests are defined in different maven modules?

The project simple-multimodule-project.zip:

  • serenity-reportportal-integration [1.3.0]
  • maven-failsafe-plugin [2.22.1]
  • serenity-core [2.0.20]
  • serenity-cucumber [1.9.21]

Execute the following command to reproduce the issue:

 mvn clean verify -Dcucumber.options="--tags '@API'"
@Invictum Invictum added this to the 1.4.1 milestone Mar 22, 2019
@Invictum
Copy link
Owner

@nstbushneva

jUnit is configured to run tests in parallel using JVM forking.

      <plugin>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>${maven.failsafe.plugin.version}</version>
        <configuration>
          <includes>
            <include>**/*Test.java</include>
          </includes>
          <parallel>classes</parallel>
          <threadCount>${threads.number}</threadCount>
          <forkCount>${threads.number}</forkCount>
          <perCoreThreadCount>false</perCoreThreadCount>
          <testFailureIgnore>false</testFailureIgnore>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>integration-test</goal>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

So tests on each submodule run on a different JVMs. But for now integration controls RP communication client on one JVM level, so practically with your example several client created, as a result you got several launches in RP.

Potentially is it possible to avoid it with cross JVM communication, but efforts to do it is too high comparing to this use case rarity.

@slavamarkovski
Copy link

Hello,

Do you have any plans to fix the issue? We faced with the same problem recently.
As a workaround it is possible to set unique tag for each set of runs and merge them on full run completion using RP API.

Thanks.

@Invictum
Copy link
Owner

Invictum commented Jul 10, 2019

@slavamarkovski
Your proposed workaround idea sounds interesting. I will investigate the ability to apply it.

@slavamarkovski
Copy link

slavamarkovski commented Jul 11, 2019

@Invictum sorry for pushing but do you have any rough ETA for this issue?

@Invictum
Copy link
Owner

@slavamarkovski

I made a small investigation and actually it is more complex than expected. It requires cross JVM communication even with merge approach.

As for estimates: It depends on my free time, but I will try to implement it in a few weeks.

@Invictum
Copy link
Owner

Implemented. Will be available on 1.4.2+

@slavamarkovski
Before release feature is available in snapshots, related documentation can be found in README.md in development branch

Invictum added a commit that referenced this issue Jul 19, 2019
#63: Implemented launches merge for multi-module project
@Invictum Invictum modified the milestones: Unknown, 1.4.2 Jul 19, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants