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

Serenity 3.3.4 Requirements are not generated on Win OS -> java.nio.file.NoSuchFileException: src\test\resources\features #2959

Closed
martin-cieslar-telia opened this issue Oct 26, 2022 · 6 comments

Comments

@martin-cieslar-telia
Copy link

Hi,

For Windows-based OS, we receive a lot of java.nio.file.NoSuchFileException: src\test\resources\features when the aggregate job is started. The report can be shown but without requirements.
An attempt to click on some requirement in the path to test result ends with 404 Not Found.

plugin: net.serenity-bdd.serenity-gradle-plugin:3.3.4
serenity: serenityVersion = '3.3.4'

OS: Windows 10 Enterprise version: 21H2

Thank you

StackTrace:

Failed to load requirements: src\test\resources\features
java.io.UncheckedIOException: src\test\resources\features
	at org.apache.commons.io.FileUtils.listFilesAndDirs(FileUtils.java:2184)
	at net.thucydides.core.files.TheDirectoryStructure.maxDepth(TheDirectoryStructure.java:56)
	at net.thucydides.core.requirements.FileSystemRequirementsTagProvider.getRequirementTypeOf(FileSystemRequirementsTagProvider.java:655)
	at net.thucydides.core.requirements.FileSystemRequirementsTagProvider.requirementFromDirectoryName(FileSystemRequirementsTagProvider.java:643)
	at net.thucydides.core.requirements.FileSystemRequirementsTagProvider.readRequirementFrom(FileSystemRequirementsTagProvider.java:554)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	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.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
	at net.thucydides.core.requirements.FileSystemRequirementsTagProvider.capabilitiesAndStoriesIn(FileSystemRequirementsTagProvider.java:187)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1621)
	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:578)
	at net.thucydides.core.requirements.FileSystemRequirementsTagProvider.getRequirements(FileSystemRequirementsTagProvider.java:173)
	at net.thucydides.core.requirements.FileSystemRequirementsTagProvider.lastRequirementFrom(FileSystemRequirementsTagProvider.java:455)
	at net.thucydides.core.requirements.FileSystemRequirementsTagProvider.parentRequirementFromPackagePath(FileSystemRequirementsTagProvider.java:348)
	at net.thucydides.core.requirements.FileSystemRequirementsTagProvider.getParentRequirementOf(FileSystemRequirementsTagProvider.java:333)
	at net.thucydides.core.requirements.ParentRequirementsProvided.forOutcome(ParentRequirementsProvided.java:26)
	at net.thucydides.core.requirements.BaseRequirementsService.getParentRequirementOf(BaseRequirementsService.java:139)
	at net.thucydides.core.requirements.BaseRequirementsService.getParentRequirementFor(BaseRequirementsService.java:49)
	at net.thucydides.core.requirements.reports.ScenarioOutcomes.outcomeFrom(ScenarioOutcomes.java:77)
	at net.thucydides.core.requirements.reports.ScenarioOutcomes.outcomeFrom(ScenarioOutcomes.java:59)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
	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:578)
	at net.thucydides.core.requirements.reports.ScenarioOutcomes.from(ScenarioOutcomes.java:30)
	at net.thucydides.core.reports.html.RequirementsOverviewReportingTask.generateReports(RequirementsOverviewReportingTask.java:159)
	at net.thucydides.core.reports.html.ReportExecutor.call(ReportExecutor.java:33)
	at net.thucydides.core.reports.html.ReportExecutor.call(ReportExecutor.java:12)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.nio.file.NoSuchFileException: src\test\resources\features
	at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:85)
	at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
	at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
	at java.base/sun.nio.fs.WindowsFileAttributeViews$BasicWithKey.readAttributes(WindowsFileAttributeViews.java:164)
	at java.base/sun.nio.fs.WindowsFileAttributeViews$BasicWithKey.readAttributes(WindowsFileAttributeViews.java:153)
	at java.base/java.nio.file.FileTreeWalker.getAttributes(FileTreeWalker.java:225)
	at java.base/java.nio.file.FileTreeWalker.visit(FileTreeWalker.java:282)
	at java.base/java.nio.file.FileTreeWalker.walk(FileTreeWalker.java:328)
	at java.base/java.nio.file.Files.walkFileTree(Files.java:2792)
	at org.apache.commons.io.FileUtils.listAccumulate(FileUtils.java:2076)
	at org.apache.commons.io.FileUtils.listFilesAndDirs(FileUtils.java:2179)
	... 44 more

@wakaleo
Copy link
Member

wakaleo commented Oct 26, 2022

This is a known Gradle-related issue, but I don't know when we will be able to figure out a fix. PRs are welcome.

@martin-cieslar-telia
Copy link
Author

I did some configuration tries.
Our original setup was: gradle: 7.0.2 and serenity plugin: 3.1.10

The aggregate task is working:
gradle\serenity-plugin3.1.103.2.03.2.13.3.4
7.0.2YES YES NO NO
7.3YES YES NO NO
7.5.1YES YES NO NO

So it looks like the problem is in the serenity plugin.

I can try to look at it maybe next week.

@wakaleo
Copy link
Member

wakaleo commented Oct 31, 2022

I did a quick try rolling back to version 3.2.0, but got the same results.

@wakaleo
Copy link
Member

wakaleo commented Nov 1, 2022

The problem appears to be that Gradle on Windows (but not on Linux) defines the working directory as the place the gradle binary is, rather than the current project, which means relative paths don't work.

@wakaleo
Copy link
Member

wakaleo commented Nov 1, 2022

Possibly fixed in 3.3.10

@martin-cieslar-telia
Copy link
Author

Hi,
thank you, I can confirm, that the plugin version 3.3.10 works OK on windows as well as on unix system.

@wakaleo wakaleo closed this as completed Nov 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants