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

[4.0.0-beta-2] Test result generated in 6+ minutes #3229

Closed
Danrusu1 opened this issue Aug 17, 2023 · 33 comments
Closed

[4.0.0-beta-2] Test result generated in 6+ minutes #3229

Danrusu1 opened this issue Aug 17, 2023 · 33 comments

Comments

@Danrusu1
Copy link

Danrusu1 commented Aug 17, 2023

Generating report takes a lot of time in my case 8 minutes, and I run only 2 test using specific tags.

[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0


[INFO] GENERATING SUMMARY REPORTS...
[INFO] GENERATING REQUIREMENTS REPORTS...
[INFO] GENERATING RESULT REPORTS...
[INFO] GENERATING ERROR REPORTS...
[INFO] Test results for 2 tests generated in 6 mins and 24.9 secs in directory: file:/..../target/site/serenity/
[INFO] ------------------------------------------------
[INFO] | SERENITY TESTS: | SUCCESS
[INFO] ------------------------------------------------
[INFO] | Test scenarios executed | 2
[INFO] | Total Test cases executed | 2
[INFO] | Tests passed | 2
[INFO] | Tests failed | 0
[INFO] | Tests with errors | 0
[INFO] | Tests compromised | 0
[INFO] | Tests aborted | 0
[INFO] | Tests pending | 0
[INFO] | Tests ignored/skipped | 0
[INFO] ------------------------------- | --------------
[INFO] | Total Duration| 8s 151ms
[INFO] | Fastest test took| 3s 610ms
[INFO] | Slowest test took| 4s 541ms
[INFO] ------------------------------------------------
[INFO]
[INFO] SERENITY REPORTS....../target/site/serenity/index.html
[INFO]
[INFO] --- failsafe:3.0.0-M5:verify (default) @ ....... ---
[WARNING] Parameter 'encoding' (user property 'encoding') is deprecated: since of 2.20.1
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 06:43 min
[INFO] Finished at: 2023-08-17T11:44:50+03:00

This is my POM:
`


4.0.0

<groupId>aaa</groupId>
<artifactId>vvv</artifactId>
<version>1.0-SNAPSHOT</version>

<properties>
    <java.version>11</java.version>
    <maven.compiler.source>${java.version}</maven.compiler.source>
    <maven.compiler.target>${java.version}</maven.compiler.target>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <serenity.version>4.0.0-beta-2</serenity.version>
    <encoding>UTF-8</encoding>
    <tags></tags>
    <webdriver.base.url></webdriver.base.url>
</properties>

<dependencies>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-core</artifactId>
        <version>${serenity.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-junit</artifactId>
        <version>${serenity.version}</version>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-cucumber</artifactId>
        <version>${serenity.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-screenplay</artifactId>
        <version>${serenity.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-screenplay-webdriver</artifactId>
        <version>${serenity.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-screenplay-rest</artifactId>
        <version>${serenity.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-ensure</artifactId>
        <version>${serenity.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-launcher</artifactId>
        <version>1.10.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit-platform-engine</artifactId>
        <version>7.13.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-suite</artifactId>
        <version>1.10.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>5.10.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.vintage</groupId>
        <artifactId>junit-vintage-engine</artifactId>
        <version>5.10.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.11</version>
    </dependency>

    <dependency>
        <groupId>org.assertj</groupId>
        <artifactId>assertj-core</artifactId>
        <version>3.22.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>io.rest-assured</groupId>
        <artifactId>rest-assured</artifactId>
        <version>5.0.1</version>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>31.0.1-jre</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.13.3</version>
        <scope>compile</scope>
    </dependency>

</dependencies>

<build>
    <plugins>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>3.0.0-M5</version>
            <configuration>
                <skip>true</skip>
            </configuration>
        </plugin>

        <plugin>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>3.0.0-M5</version>
            <configuration>
                <includes>
                    <include>**/*Test.java</include>
                    <include>**/Test*.java</include>
                    <include>**/*TestSuite.java</include>
                    <include>**/When*.java</include>
                </includes>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.11.0</version>
            <configuration>
                <source>11</source>
                <target>11</target>
            </configuration>
        </plugin>

        <plugin>
            <groupId>net.serenity-bdd.maven.plugins</groupId>
            <artifactId>serenity-maven-plugin</artifactId>
            <version>${serenity.version}</version>
            <configuration>
                <tags>${tags}</tags>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>net.serenity-bdd</groupId>
                    <artifactId>serenity-core</artifactId>
                    <version>${serenity.version}</version>
                </dependency>
            </dependencies>
            <executions>
                <execution>
                    <id>serenity-reports</id>
                    <phase>post-integration-test</phase>
                    <goals>
                        <goal>aggregate</goal>
                    </goals>
                </execution>
                <execution>
                    <id>check-gherkin</id>
                    <phase>process-test-resources</phase>
                    <goals>
                        <goal>check-gherkin</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

    </plugins>
</build>
`
@Danrusu1 Danrusu1 changed the title [4.0.0-beta-2] Test result generated in 8+ minutes [4.0.0-beta-2] Test result generated in 6+ minutes Aug 17, 2023
@wakaleo
Copy link
Member

wakaleo commented Aug 17, 2023

That's not normal - report generation should be in seconds (or minutes for test suites with > 10000 tests). There might be some kind of environment issue (such as an anti-virus) slowing down IO operations. Alternatively, see if you can do a thread dump or run the reporting task through a profiler you might be able to see where it is spending its time.

These are more typical results that you would expect:
image

image

If you can't figure it out we could have a look directly on your project as part of a commercial support package.

@vayaszsolt
Copy link

@wakaleo Also I have the same issue. I am running a single Scenario and the report gets generated in 1 minutes. I am running the test in a quite huge project. We have in total of 116 feature files/440 Scenarios. But I am running a single Scenario.

@wakaleo
Copy link
Member

wakaleo commented Aug 18, 2023

Report generation involves analysing the complete requirements hierachy, so even if you run a single scenario, it may take time due to the number of requirements. If it is a lot more than in previous versions, we would need to look at your project specifically to see why.

@ralf-meier
Copy link

ralf-meier commented Aug 22, 2023

Hi, I have the same issue with version 3.9.8. When going back to 3.8.1 the reports are generated as fast as before.

I just ran with 3.9.8 and connected with jconsole to the JVM.
I see 24 threads when the report generation starts - exactly as logged in the output.
But it seems that 23 threads are always waiting or blocked and only 1 is working.

State: BLOCKED on java.util.concurrent.ConcurrentHashMap$Node@8f9b7d2 owned by: pool-7-thread-21
Total blocked: 1.380  Total waited: 2

Stack trace: 
java.base@11.0.17/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1723)
net.thucydides.core.model.RequirementCache.getRequirementsByTag(RequirementCache.java:59)
net.thucydides.core.requirements.FileSystemRequirementsTagProvider.getRequirementFor(FileSystemRequirementsTagProvider.java:444)
net.thucydides.core.requirements.FileSystemRequirementsTagProvider.mostSpecificTagRequirementFor(FileSystemRequirementsTagProvider.java:357)
net.thucydides.core.requirements.FileSystemRequirementsTagProvider.getParentRequirementOf(FileSystemRequirementsTagProvider.java:329)
net.thucydides.core.requirements.ParentRequirementsProvided.forOutcome(ParentRequirementsProvided.java:26)
net.thucydides.core.requirements.BaseRequirementsService.getParentRequirementOf(BaseRequirementsService.java:142)
net.thucydides.core.requirements.BaseRequirementsService.findParentRequirementFor(BaseRequirementsService.java:56)
net.thucydides.core.requirements.BaseRequirementsService$$Lambda$435/0x0000000100627c40.load(Unknown Source)
com.github.benmanes.caffeine.cache.LocalLoadingCache.lambda$newMappingFunction$3(LocalLoadingCache.java:183)
com.github.benmanes.caffeine.cache.LocalLoadingCache$$Lambda$437/0x0000000100626040.apply(Unknown Source)
com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$14(BoundedLocalCache.java:2677)
com.github.benmanes.caffeine.cache.BoundedLocalCache$$Lambda$890/0x00000001007e3040.apply(Unknown Source)
java.base@11.0.17/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1908)
   - locked java.util.concurrent.ConcurrentHashMap$ReservationNode@6fe56a3
com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2675)
com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2658)
com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:112)
com.github.benmanes.caffeine.cache.LocalLoadingCache.get(LocalLoadingCache.java:58)
net.thucydides.core.requirements.BaseRequirementsService.getParentRequirementFor(BaseRequirementsService.java:51)
net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addParentRequirmentFieldToContext(HtmlAcceptanceTestReporter.java:194)
net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addTestOutcomeToContext(HtmlAcceptanceTestReporter.java:188)
net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.generateReportFor(HtmlAcceptanceTestReporter.java:97)
net.thucydides.core.reports.html.HtmlTestOutcomeReportingTask.generateReports(HtmlTestOutcomeReportingTask.java:53)
net.thucydides.core.reports.html.ReportExecutor.call(ReportExecutor.java:33)
net.thucydides.core.reports.html.ReportExecutor.call(ReportExecutor.java:12)
java.base@11.0.17/java.util.concurrent.FutureTask.run(FutureTask.java:264)
java.base@11.0.17/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
java.base@11.0.17/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@11.0.17/java.lang.Thread.run(Thread.java:829)

I honestly don't know, if this is completely normal or could mean something. I'm QA and not a programmer.

@wakaleo
Copy link
Member

wakaleo commented Aug 22, 2023

Could you try with a more recent JDK?

@ralf-meier
Copy link

Switched to Java17. For me it's still slow with a lot of waiting and blocked threads:

Name: pool-5-thread-23
State: BLOCKED on java.util.concurrent.ConcurrentHashMap$Node@3e2451c1 owned by: pool-5-thread-11
Total blocked: 1.143  Total waited: 14

Stack trace: 
java.base@17.0.6/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1726)
net.thucydides.core.model.RequirementCache.getRequirementsByTag(RequirementCache.java:59)
net.thucydides.core.requirements.TestOutcomeRequirementsTagProvider.getRequirementFor(TestOutcomeRequirementsTagProvider.java:330)
net.thucydides.core.requirements.BaseRequirementsService.getRequirementFor(BaseRequirementsService.java:67)
net.thucydides.core.reports.html.ReportNameProvider.forRequirement(ReportNameProvider.java:134)
net.thucydides.core.model.Story.getReportName(Story.java:354)
net.thucydides.core.requirements.reports.ScenarioOutcomes.outcomeFrom(ScenarioOutcomes.java:61)
net.thucydides.core.requirements.reports.ScenarioOutcomes.lambda$from$0(ScenarioOutcomes.java:33)
net.thucydides.core.requirements.reports.ScenarioOutcomes$$Lambda$1071/0x0000000801304bd8.apply(Unknown Source)
java.base@17.0.6/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
java.base@17.0.6/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
java.base@17.0.6/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
java.base@17.0.6/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
java.base@17.0.6/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
java.base@17.0.6/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
java.base@17.0.6/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
net.thucydides.core.requirements.reports.ScenarioOutcomes.from(ScenarioOutcomes.java:34)
net.thucydides.core.reports.html.FreemarkerContext.getBuildContext(FreemarkerContext.java:157)
net.thucydides.core.reports.html.DurationReportingTask.generateReports(DurationReportingTask.java:46)
net.thucydides.core.reports.html.ReportExecutor.call(ReportExecutor.java:33)
net.thucydides.core.reports.html.ReportExecutor.call(ReportExecutor.java:12)
java.base@17.0.6/java.util.concurrent.FutureTask.run(FutureTask.java:264)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
java.base@17.0.6/java.lang.Thread.run(Thread.java:833)

@Danrusu1
Copy link
Author

Danrusu1 commented Aug 22, 2023

In my case I'm using java 11, tests are running fast without the aggregate report, but when I do the mvn serenity:aggregate -Dtags="new" it takes a lot of time, it stays a couple of seconds > 10s on each feature file, despite the fact that I run only 2 tests from 2 different feature files.
[DEBUG] Loading feature /Users/rusud/IdeaProjects/automation-qa/src/test/resources/features/raffle/quiz.feature
[DEBUG] Loading feature /Users/rusud/IdeaProjects/automation-qa/src/test/resources/features/raffle/quizz.feature
[DEBUG] Loading feature /Users/rusud/IdeaProjects/automation-qa/src/test/resources/features/raffle/quizzz.feature
.........

@wakaleo
Copy link
Member

wakaleo commented Aug 22, 2023

Can you try with 4.0.0-beta-3?

@vayaszsolt
Copy link

The 4.0.0-beta-3 is not available in the maven central repository. Can you publish the build there?

@wakaleo
Copy link
Member

wakaleo commented Aug 22, 2023

It will be soon

@Danrusu1
Copy link
Author

Works on my side, thanks @wakaleo

@Danrusu1
Copy link
Author

Danrusu1 commented Aug 22, 2023

I need to reopen this issued:
-> Works when report it's generated for 2 tests using: 4.0.0-beta-3 for the serenity libs, except the serenity-maven-plugin here I have 4.0.0-beta-2.
-> running the entire suite using the dry run mvn clean verify -Dcucumber.execution.dry-run=true, report was ready in 10 minutes (1300 test cases)
Do I need to wait also for the serenity-maven-plugin to be updated to 4.0.0-beta-3 ? (Cannot resolve plugin net.serenity-bdd.maven.plugins:serenity-maven-plugin:4.0.0-beta-3)

@Danrusu1 Danrusu1 reopened this Aug 22, 2023
@infa-vpatil
Copy link

Serenity reports taking more than 46 mins for two tests

im using serenity with gradle plugin 3.9.8

Task :mdmtest:reports
Caching disabled for task ':mdmtest:reports' because:
Build cache is disabled
Task ':mdmtest:reports' is not up-to-date because:
Task has not declared any outputs despite executing actions.
Generating Additional Serenity Reports for mdmtest to directory /home/gradle/mdmtest/target/site/serenity
No report found on classpath with name single-page-html
Resolve mutations for :mdmtest:aggregate (Thread[Execution worker Thread 7,5,main]) started.
:mdmtest:aggregate (Thread[included builds,5,main]) started.

Task :mdmtest:aggregate
Caching disabled for task ':mdmtest:aggregate' because:
Build cache is disabled
Task ':mdmtest:aggregate' is not up-to-date because:
Task has not declared any outputs despite executing actions.
Generating Serenity Reports

Test Root: com.informatica.mdm
Main report: file:///home/gradle/mdmtest/target/site/serenity/index.html
Test Root: com.informatica.mdm
Requirements base directory: null
GENERATING REPORTS USING 16 THREADS
GENERATING SUMMARY REPORTS...
GENERATING REQUIREMENTS REPORTS...
GENERATING RESULT REPORTS...
GENERATING ERROR REPORTS...
Test results for 2 tests generated in 46 mins and 45.9 secs in directory: file:/home/gradle/mdmtest/target/site/serenity/

@wakaleo
Copy link
Member

wakaleo commented Aug 22, 2023

serenity-maven-plug-in is released with Serenity-core, so should be the same version

@wakaleo
Copy link
Member

wakaleo commented Aug 22, 2023

Serenity reports taking more than 46 mins for two tests

im using serenity with gradle plugin 3.9.8

Task :mdmtest:reports Caching disabled for task ':mdmtest:reports' because: Build cache is disabled Task ':mdmtest:reports' is not up-to-date because: Task has not declared any outputs despite executing actions. Generating Additional Serenity Reports for mdmtest to directory /home/gradle/mdmtest/target/site/serenity No report found on classpath with name single-page-html Resolve mutations for :mdmtest:aggregate (Thread[Execution worker Thread 7,5,main]) started. :mdmtest:aggregate (Thread[included builds,5,main]) started.

Task :mdmtest:aggregate Caching disabled for task ':mdmtest:aggregate' because: Build cache is disabled Task ':mdmtest:aggregate' is not up-to-date because: Task has not declared any outputs despite executing actions. Generating Serenity Reports

Test Root: com.informatica.mdm Main report: file:///home/gradle/mdmtest/target/site/serenity/index.html Test Root: com.informatica.mdm Requirements base directory: null GENERATING REPORTS USING 16 THREADS GENERATING SUMMARY REPORTS... GENERATING REQUIREMENTS REPORTS... GENERATING RESULT REPORTS... GENERATING ERROR REPORTS... Test results for 2 tests generated in 46 mins and 45.9 secs in directory: file:/home/gradle/mdmtest/target/site/serenity/

Try with 4.0.0-beta-3 when the gradle plugin is published.

@infa-vpatil
Copy link

Any older stable version without this issue ?

@ralf-meier
Copy link

@wakaleo: Thanks for the fix. I upgraded to 4.0.0-beta-3 (all dependencies including plugin).
Now "Test results for 879 tests generated in 4 mins and 23.3 secs" (with 80 threads)
This is fine for me, given that the report has much more information now :-)

@Rangiferus
Copy link

Rangiferus commented Aug 22, 2023

I can confirm that starting from v. 3.9.8 to at least 4.0.0.-beta-2 the report generation takes very long time.
mvn serenity:aggregate for 362 test cases takes 03:40 min with v. 3.7.1 and more than 4 hours (!) with about 40 s spent to produce this console log for each case:

------------------------------------------------------------------------
| TEST NAME:   <scenario_name>
| RESULT:      Passing
| REQUIREMENT: <feature_name>
| REPORT:      file:///D:/a/1/s/target/site/serenity/16e9d0a977d21eee64182d679bfddac70b8d84082b629a57e9aa76aa039f0189.html
------------------------------------------------------------------------

Can it be something similar that was already introduced in #2772?
I'm planning to give a try with 4.0.0-beta-3.

@wakaleo
Copy link
Member

wakaleo commented Aug 22, 2023

This should be fixed in 4.0.0-beta-3

@Rangiferus
Copy link

It's till not too good - in 4.0.0-beta-3 reports were generated in 48 min compared to 4 hours in 4.0.0.-beta-2 and less than 4 min in 3.7.1.

@wakaleo
Copy link
Member

wakaleo commented Aug 23, 2023

@Rangiferus Since I can't reproduce this it's very hard to troubleshoot. I really have no idea where to look: there may well be project or environment specific issues in play. If you are seeing this for a corporate project, the ideal would be to get one of the commercial support packages so we can investigate in detail on the project itself (see https://www.serenity-dojo.com/serenity-bdd-enterprise-support), otherwise I don't think I can do much unless I can see the issue reproduced. Alternatively, try running the reports with a profiler and see if you can see any particular areas that are causing delays.

@vinaypatil1994
Copy link

@wakaleo When i run tests with gradle failfast property as true , serenity report is generated with zero results ? Is there any tweaking need in build.gradle file when failfast is set to true ?

image

@wakaleo
Copy link
Member

wakaleo commented Aug 23, 2023

No idea. An empty report happens when no Serenity json reports are found, so maybe Gradle fails before any Serenity tests get executed.

@vinaypatil1994
Copy link

vinaypatil1994 commented Aug 23, 2023

In my case few tests are executed , i see json reports created as well. Only index.html shows zero tests

@wakaleo
Copy link
Member

wakaleo commented Aug 23, 2023

What happens when you run gradle aggregate?

@vinaypatil1994
Copy link

vinaypatil1994 commented Aug 23, 2023

Intelligent File Import IFI flow.User attempts public BES persist and validate response SKIPPED

5 tests completed, 1 failed, 1 skipped
Finished generating test XML results (0.079 secs) into: /root/workspace/1_Usecase_1_E2E/mdmtest/build/test-results/test
Generating HTML test report...
Finished generating test html results (0.063 secs) into: /root/workspace/1_Usecase_1_E2E/mdmtest/build/gradle-report

Task :mdmtest:test FAILED
Resolve mutations for :mdmtest:aggregate (Thread[Execution worker,5,main]) started.
:mdmtest:aggregate (Thread[Execution worker,5,main]) started.

Task :mdmtest:aggregate
Caching disabled for task ':mdmtest:aggregate' because:
Build cache is disabled
Task ':mdmtest:aggregate' is not up-to-date because:
Task has not declared any outputs despite executing actions.
Generating Serenity Reports

  • Test Root: com.informatica.mdm
  • Main report: file:///root/workspace/1_Usecase_1_E2E/mdmtest/target/site/serenity/index.html
    • Test Root: com.informatica.mdm
    • Requirements base directory: null
      Test results for 0 tests generated in 7.5 secs in directory: file:/root/workspace/1_Usecase_1_E2E/mdmtest/target/site/serenity/

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':mdmtest:test'.

There were failing tests. See the report at: file:///root/workspace/1_Usecase_1_E2E/mdmtest/build/gradle-report/index.html

  • Try:

Run with --scan to get full insights.

BUILD FAILED in 9m 22s
15 actionable tasks: 14 executed, 1 up-to-date
Stopped 1 worker daemon(s).

@vinaypatil1994
Copy link

also i see this exception

5 tests completed, 1 failed, 1 skipped

Task :mdmtest:test FAILED
Task :mdmtest:aggregate
Generating Serenity Reports

  • Test Root: com.informatica.mdm
  • Main report: file:///C:/Users/vpatil/MDM_Docs/Codebase/mdm-integration-tests-bdd/mdmtest/target/site/serenity/index.html
    • Test Root: com.informatica.mdm
    • Requirements base directory: null
      java.nio.charset.UnmappableCharacterException: Input length = 1
      at java.base/java.nio.charset.CoderResult.throwException(CoderResult.java:275)
      at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:352)
      at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188)
      at java.base/java.io.InputStreamReader.read(InputStreamReader.java:178)
      at java.base/java.io.BufferedReader.fill(BufferedReader.java:161)
      at java.base/java.io.BufferedReader.readLine(BufferedReader.java:329)
      at java.base/java.io.BufferedReader.readLine(BufferedReader.java:396)
      at java.base/java.nio.file.Files.readAllLines(Files.java:3399)
      at org.gradle.internal.classpath.declarations.NioFileInterceptors.intercept_readAllLines(NioFileInterceptors.java:210)
      at org.apache.commons.io.FileUtils.readLines(FileUtils.java:2669)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.readLocaleFromFeatureFile(FileSystemRequirementsTagProvider.java:649)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.loadFromFeatureFile(FileSystemRequirementsTagProvider.java:641)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.readRequirementsFromStoryOrFeatureFile(FileSystemRequirementsTagProvider.java:590)
      at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
      at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:312)
      at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
      at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
      at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
      at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1694)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
      at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.getRequirements(FileSystemRequirementsTagProvider.java:156)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.readChildrenFrom(FileSystemRequirementsTagProvider.java:790)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.requirementFromDirectoryName(FileSystemRequirementsTagProvider.java:670)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.readRequirementFrom(FileSystemRequirementsTagProvider.java:574)
      at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
      at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:312)
      at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734)
      at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
      at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
      at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1694)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
      at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.getRequirements(FileSystemRequirementsTagProvider.java:156)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.readChildrenFrom(FileSystemRequirementsTagProvider.java:790)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.requirementFromDirectoryName(FileSystemRequirementsTagProvider.java:670)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.readRequirementFrom(FileSystemRequirementsTagProvider.java:574)
      at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
      at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:312)
      at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734)
      at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
      at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
      at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1694)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
      at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.getRequirements(FileSystemRequirementsTagProvider.java:156)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.readChildrenFrom(FileSystemRequirementsTagProvider.java:790)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.requirementFromDirectoryName(FileSystemRequirementsTagProvider.java:670)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.readRequirementFrom(FileSystemRequirementsTagProvider.java:574)
      at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
      at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:312)
      at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734)
      at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
      at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
      at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1694)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
      at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.getRequirements(FileSystemRequirementsTagProvider.java:156)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.readChildrenFrom(FileSystemRequirementsTagProvider.java:793)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.requirementFromDirectoryName(FileSystemRequirementsTagProvider.java:670)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.readRequirementFrom(FileSystemRequirementsTagProvider.java:574)
      at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
      at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:312)
      at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734)
      at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
      at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
      at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1694)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
      at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.getRequirements(FileSystemRequirementsTagProvider.java:156)
      at net.thucydides.model.requirements.RequirementsProvided.asStream(RequirementsProvided.java:30)
      at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273)
      at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:952)
      at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:926)
      at java.base/java.util.stream.AbstractTask.compute(AbstractTask.java:327)
      at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)
      at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:295)
      at java.base/java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:413)
      at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:741)
      at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateParallel(ReduceOps.java:919)
      at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
      at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
      at net.thucydides.model.requirements.MultiSourceRequirementsService.getRequirements(MultiSourceRequirementsService.java:44)
      at net.thucydides.model.reports.TestOutcomes.withRequirementsTags(TestOutcomes.java:629)
      at net.thucydides.core.reports.html.HtmlAggregateStoryReporter.loadTestOutcomesFrom(HtmlAggregateStoryReporter.java:275)
      at net.thucydides.core.reports.html.HtmlAggregateStoryReporter.generateReportsForTestResultsFrom(HtmlAggregateStoryReporter.java:133)
      at net.thucydides.model.reports.UserStoryTestReporter$generateReportsForTestResultsFrom.call(Unknown Source)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139)
      at net.serenitybdd.plugins.gradle.AggregateTask.aggregate(AggregateTask.groovy:56)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.base/java.lang.reflect.Method.invoke(Method.java:567)
      at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)
      at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
      at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
      at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
      at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:248)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
      at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
      at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
      at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
      at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:233)
      at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:216)
      at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:199)
      at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:166)
      at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)
      at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)
      at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59)
      at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
      at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
      at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
      at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
      at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)
      at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)
      at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:67)
      at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:37)
      at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)
      at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)
      at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
      at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:50)
      at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:28)
      at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.executeDelegateBroadcastingChanges(CaptureStateAfterExecutionStep.java:100)
      at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:72)
      at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:50)
      at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:40)
      at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:29)
      at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:179)
      at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:70)
      at org.gradle.internal.Either$Right.fold(Either.java:175)
      at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:59)
      at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:68)
      at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:46)
      at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:36)
      at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:25)
      at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)
      at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)
      at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:91)
      at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:55)
      at java.base/java.util.Optional.orElseGet(Optional.java:364)
      at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
      at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:37)
      at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:65)
      at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:36)
      at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
      at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
      at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:77)
      at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:38)
      at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:94)
      at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:49)
      at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:71)
      at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:45)
      at org.gradle.internal.execution.steps.SkipEmptyWorkStep.executeWithNonEmptySources(SkipEmptyWorkStep.java:177)
      at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:81)
      at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:53)
      at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:32)
      at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:21)
      at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
      at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)
      at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)
      at org.gradle.internal.execution.steps.CleanupStaleOutputsStep.execute(CleanupStaleOutputsStep.java:75)
      at org.gradle.internal.execution.steps.CleanupStaleOutputsStep.execute(CleanupStaleOutputsStep.java:41)
      at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:32)
      at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:293)
      at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)
      at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:21)
      at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)
      at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)
      at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:47)
      at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:34)
      at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:64)
      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:146)
      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:135)
      at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
      at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
      at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
      at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)
      at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
      at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
      at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
      at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
      at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)
      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:337)
      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:324)
      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:317)
      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303)
      at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:463)
      at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:380)
      at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
      at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)
      at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
      at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
      at java.base/java.lang.Thread.run(Thread.java:831)
      java.nio.charset.UnmappableCharacterException: Input length = 1
      at java.base/java.nio.charset.CoderResult.throwException(CoderResult.java:275)
      at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:352)
      at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188)
      at java.base/java.io.InputStreamReader.read(InputStreamReader.java:178)
      at java.base/java.io.BufferedReader.fill(BufferedReader.java:161)
      at java.base/java.io.BufferedReader.readLine(BufferedReader.java:329)
      at java.base/java.io.BufferedReader.readLine(BufferedReader.java:396)
      at java.base/java.nio.file.Files.readAllLines(Files.java:3399)
      at org.gradle.internal.classpath.declarations.NioFileInterceptors.intercept_readAllLines(NioFileInterceptors.java:210)
      at org.apache.commons.io.FileUtils.readLines(FileUtils.java:2669)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.readLocaleFromFeatureFile(FileSystemRequirementsTagProvider.java:649)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.loadFromFeatureFile(FileSystemRequirementsTagProvider.java:641)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.readRequirementsFromStoryOrFeatureFile(FileSystemRequirementsTagProvider.java:590)
      at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
      at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:312)
      at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)
      at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
      at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
      at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1694)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
      at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.getRequirements(FileSystemRequirementsTagProvider.java:156)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.readChildrenFrom(FileSystemRequirementsTagProvider.java:790)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.requirementFromDirectoryName(FileSystemRequirementsTagProvider.java:670)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.readRequirementFrom(FileSystemRequirementsTagProvider.java:574)
      at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
      at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:312)
      at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734)
      at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
      at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
      at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1694)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
      at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.getRequirements(FileSystemRequirementsTagProvider.java:156)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.readChildrenFrom(FileSystemRequirementsTagProvider.java:790)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.requirementFromDirectoryName(FileSystemRequirementsTagProvider.java:670)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.readRequirementFrom(FileSystemRequirementsTagProvider.java:574)
      at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
      at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:312)
      at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734)
      at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
      at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
      at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1694)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
      at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.getRequirements(FileSystemRequirementsTagProvider.java:156)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.readChildrenFrom(FileSystemRequirementsTagProvider.java:793)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.requirementFromDirectoryName(FileSystemRequirementsTagProvider.java:670)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.readRequirementFrom(FileSystemRequirementsTagProvider.java:574)
      at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
      at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:312)
      at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734)
      at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
      at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
      at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1694)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
      at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
      at net.thucydides.model.requirements.FileSystemRequirementsTagProvider.getRequirements(FileSystemRequirementsTagProvider.java:156)
      at net.thucydides.model.requirements.RequirementsProvided.asStream(RequirementsProvided.java:30)
      at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273)
      at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
      at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:952)
      at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:926)
      at java.base/java.util.stream.AbstractTask.compute(AbstractTask.java:327)
      at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)
      at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:295)
      at java.base/java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:413)
      at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:741)
      at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateParallel(ReduceOps.java:919)
      at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
      at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
      at net.thucydides.model.requirements.MultiSourceRequirementsService.getRequirements(MultiSourceRequirementsService.java:44)
      at net.thucydides.model.reports.TestOutcomes.withRequirementsTags(TestOutcomes.java:629)
      at net.thucydides.core.reports.html.HtmlAggregateStoryReporter.loadTestOutcomesFrom(HtmlAggregateStoryReporter.java:275)
      at net.thucydides.core.reports.html.HtmlAggregateStoryReporter.generateReportsForTestResultsFrom(HtmlAggregateStoryReporter.java:133)
      at net.thucydides.model.reports.UserStoryTestReporter$generateReportsForTestResultsFrom.call(Unknown Source)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139)
      at net.serenitybdd.plugins.gradle.AggregateTask.aggregate(AggregateTask.groovy:56)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.base/java.lang.reflect.Method.invoke(Method.java:567)
      at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)
      at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
      at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
      at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
      at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:248)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
      at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
      at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
      at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
      at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:233)
      at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:216)
      at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:199)
      at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:166)
      at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)
      at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)
      at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59)
      at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
      at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
      at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
      at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
      at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)
      at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)
      at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:67)
      at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:37)
      at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)
      at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)
      at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
      at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:50)
      at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:28)
      at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.executeDelegateBroadcastingChanges(CaptureStateAfterExecutionStep.java:100)
      at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:72)
      at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:50)
      at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:40)
      at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:29)
      at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:179)
      at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:70)
      at org.gradle.internal.Either$Right.fold(Either.java:175)
      at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:59)
      at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:68)
      at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:46)
      at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:36)
      at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:25)
      at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)
      at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)
      at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:91)
      at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:55)
      at java.base/java.util.Optional.orElseGet(Optional.java:364)
      at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
      at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:37)
      at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:65)
      at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:36)
      at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
      at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
      at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:77)
      at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:38)
      at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:94)
      at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:49)
      at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:71)
      at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:45)
      at org.gradle.internal.execution.steps.SkipEmptyWorkStep.executeWithNonEmptySources(SkipEmptyWorkStep.java:177)
      at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:81)
      at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:53)
      at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:32)
      at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:21)
      at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
      at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)
      at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)
      at org.gradle.internal.execution.steps.CleanupStaleOutputsStep.execute(CleanupStaleOutputsStep.java:75)
      at org.gradle.internal.execution.steps.CleanupStaleOutputsStep.execute(CleanupStaleOutputsStep.java:41)
      at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:32)
      at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:293)
      at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)
      at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:21)
      at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)
      at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)
      at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:47)
      at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:34)
      at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:64)
      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:146)
      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:135)
      at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
      at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
      at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
      at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)
      at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
      at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
      at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
      at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
      at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
      at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)
      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:337)
      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:324)
      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:317)
      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303)
      at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:463)
      at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:380)
      at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
      at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)
      at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
      at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
      at java.base/java.lang.Thread.run(Thread.java:831)

@wakaleo
Copy link
Member

wakaleo commented Aug 23, 2023

Intelligent File Import IFI flow.User attempts public BES persist and validate response SKIPPED

5 tests completed, 1 failed, 1 skipped Finished generating test XML results (0.079 secs) into: /root/workspace/1_Usecase_1_E2E/mdmtest/build/test-results/test Generating HTML test report... Finished generating test html results (0.063 secs) into: /root/workspace/1_Usecase_1_E2E/mdmtest/build/gradle-report

Task :mdmtest:test FAILED
Resolve mutations for :mdmtest:aggregate (Thread[Execution worker,5,main]) started.
:mdmtest:aggregate (Thread[Execution worker,5,main]) started.

Task :mdmtest:aggregate
Caching disabled for task ':mdmtest:aggregate' because:
Build cache is disabled
Task ':mdmtest:aggregate' is not up-to-date because:
Task has not declared any outputs despite executing actions.
Generating Serenity Reports

  • Test Root: com.informatica.mdm

  • Main report: file:///root/workspace/1_Usecase_1_E2E/mdmtest/target/site/serenity/index.html

    • Test Root: com.informatica.mdm
    • Requirements base directory: null
      Test results for 0 tests generated in 7.5 secs in directory: file:/root/workspace/1_Usecase_1_E2E/mdmtest/target/site/serenity/

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':mdmtest:test'.

There were failing tests. See the report at: file:///root/workspace/1_Usecase_1_E2E/mdmtest/build/gradle-report/index.html

  • Try:

Run with --scan to get full insights.

BUILD FAILED in 9m 22s 15 actionable tasks: 14 executed, 1 up-to-date Stopped 1 worker daemon(s).

@vinaypatil1994 It looks like the --fail-fast prevents Serenity from producing the Serenity JSON reports, and therefore makes it impossible to produce the HTML reports. I don't have a solution at this stage, but feel free to look at the Gradle plugin code to propose a PR, or request some commercial support - (see https://www.serenity-dojo.com/serenity-bdd-enterprise-support), if this feature would be valuable for your organisation.

@Rangiferus
Copy link

Rangiferus commented Aug 23, 2023

@wakaleo I think that the problem with the slow report generation is not project specific as I can run the same project with different Serenity versions and have totally different generation times.
Maybe some Maven dependency versions should be changed?
Here's what I have:

   <properties>
        <java.version>11</java.version>
        <serenity.version>4.0.0-beta-3</serenity.version>
        <cucumber-junit-platform-engine.version>7.13.0</cucumber-junit-platform-engine.version>
        <junit-platform-suite.version>1.10.0</junit-platform-suite.version>
        <junit-platform-launcher.version>1.10.0</junit-platform-launcher.version>
        <junit-jupiter-engine.version>5.10.0</junit-jupiter-engine.version>
        <junit-vintage-engine.version>5.10.0</junit-vintage-engine.version>
        <maven-surefire-plugin.version>3.1.2</maven-surefire-plugin.version>
        <maven-failsafe-plugin.version>3.1.2</maven-failsafe-plugin.version>
        <jackson-databind.version>2.15.1</jackson-databind.version>
        <maven-jar-plugin.version>2.4</maven-jar-plugin.version>
        <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
    </properties>

The tests are executed the standard way

mvn "-Dcucumber.filter.tags=<test_tags>" "-Dserenity.project.name=<report_title" test

followed by the report generation with:

mvn serenity:aggregate

A report with one automated scenario is created in more than 7 minutes.

@wakaleo
Copy link
Member

wakaleo commented Aug 23, 2023

@Rangiferus The dependencies look fine. But the reports should only take a few seconds to be generated. And since I'm not seeing this locally on Mac or Windows, or on the CI builds, I would need to investigate your project/environment more in detail to understand. That's what the commercial support options are for.

@Danrusu1
Copy link
Author

I agree with @Rangiferus, this is not a project specific issue. I created a dummy project aprox 350 dummy tests (long live github copilot).

using serenity 3.2.4 -> takes ~ 16 seconds
using serenity 4.0.0-beta-2 -> takes ~ 49 seconds
using serenity 4.0.0-beta-3 -> takes ~ 27 seconds

Being a beta version I will rollback to 3.2.4 and wait for new releases.

@wakaleo
Copy link
Member

wakaleo commented Aug 23, 2023

Project specific or not, if it is valuable to your organisation, and you would get value from seeing this delivered more quickly, since this is an open source project you can either investigate and contribute a PR, or get commercial support. Open source does not mean free, and most major features are sponsored, not written out of charity.

@Danrusu1
Copy link
Author

Works using 4.0.0-beta-4 🥇
Thanks for your support!

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

7 participants