From 85925dcdabbfff4212991eadfd3b12de22d64f5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gro=C3=9Fmann?= Date: Wed, 29 Jan 2025 09:46:47 +0100 Subject: [PATCH 1/4] Migrate DefaultReport from File to Path --- .../testframework/report/DefaultReport.java | 57 +++++++++++-------- .../mms/tic/testframework/report/Report.java | 39 +++++++------ .../tic/testframework/utils/FileUtils.java | 29 ++++++++-- .../mms/tic/testframework/utils/PdfUtils.java | 6 +- .../test/pagefactory/PageFactoryTest.java | 23 ++++---- .../GenerateJUnitXML2ReportListener.java | 2 +- .../tic/testframework/hook/ReportNgHook.java | 6 +- .../listeners/CopyReportAppListener.java | 1 + 8 files changed, 100 insertions(+), 63 deletions(-) diff --git a/core/src/main/java/eu/tsystems/mms/tic/testframework/report/DefaultReport.java b/core/src/main/java/eu/tsystems/mms/tic/testframework/report/DefaultReport.java index 8ef85ee889..e2d638ddaf 100644 --- a/core/src/main/java/eu/tsystems/mms/tic/testframework/report/DefaultReport.java +++ b/core/src/main/java/eu/tsystems/mms/tic/testframework/report/DefaultReport.java @@ -24,30 +24,33 @@ import eu.tsystems.mms.tic.testframework.report.model.context.Screenshot; import eu.tsystems.mms.tic.testframework.report.model.context.Video; import eu.tsystems.mms.tic.testframework.utils.FileUtils; +import org.apache.commons.io.file.PathUtils; import java.io.File; import java.io.IOException; import java.lang.annotation.Annotation; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.Arrays; import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; public class DefaultReport implements Report, Loggable { - private File currentReportDirectory; + private Path currentReportDirectory; private final String baseDir = Properties.BASE_DIR.asString(); - private final File finalReportDirectory = new File(baseDir); - private final File tempReportDirectory; + private final Path finalReportPath = Path.of(baseDir); + private final Path tempReportDirectory; private final ConcurrentHashMap, AnnotationConverter> annotationConverters = new ConcurrentHashMap<>(); public DefaultReport() { FileUtils fileUtils = new FileUtils(); tempReportDirectory = fileUtils.createTempDir(baseDir); - log().debug("Prepare report in " + tempReportDirectory.getAbsolutePath()); - + log().debug("Prepare report in " + tempReportDirectory.toAbsolutePath()); currentReportDirectory = tempReportDirectory; } + // TODO: Migrate to Path private File addFile(File sourceFile, File directory, FileMode fileMode) { try { switch (fileMode) { @@ -65,32 +68,38 @@ private File addFile(File sourceFile, File directory, FileMode fileMode) { return new File(directory, sourceFile.getName()); } - public File finalizeReport() { + public Path finalizeReport() { try { - if (finalReportDirectory.exists()) { - FileUtils.deleteDirectory(finalReportDirectory); + if (Files.exists(finalReportPath)) { + PathUtils.deleteDirectory(finalReportPath); } - if (tempReportDirectory.exists()) { + if (Files.exists(tempReportDirectory)) { log().debug("Temporary directory is {}", tempReportDirectory); - FileUtils.moveDirectory(tempReportDirectory, finalReportDirectory); - currentReportDirectory = finalReportDirectory; - log().info("Report written to " + finalReportDirectory.getAbsolutePath()); + PathUtils.copyDirectory(tempReportDirectory, finalReportPath); + currentReportDirectory = finalReportPath; + log().info("Report written to " + finalReportPath.toAbsolutePath()); + } + + try { + PathUtils.deleteDirectory(tempReportDirectory); + } catch (IOException e) { + log().warn("Could not delete temporary directory {}", tempReportDirectory); } } catch (IOException e) { - throw new RuntimeException("Could not move report dir: " + e.getMessage(), e); + throw new RuntimeException("Could not copy report dir: " + e.getMessage(), e); } - return finalReportDirectory; + return finalReportPath; } private void addScreenshotFiles(Screenshot screenshot, FileMode fileMode) { - File screenshotsDirectory = getReportDirectory(SCREENSHOTS_FOLDER_NAME); + Path screenshotsDirectory = getReportDirectory(SCREENSHOTS_FOLDER_NAME); if (screenshot.getScreenshotFile() != null) { - screenshot.setFile(addFile(screenshot.getScreenshotFile(), screenshotsDirectory, fileMode)); + screenshot.setFile(addFile(screenshot.getScreenshotFile(), screenshotsDirectory.toFile(), fileMode)); } screenshot.getPageSourceFile().ifPresent(file -> { - screenshot.setPageSourceFile(addFile(file, screenshotsDirectory, fileMode)); + screenshot.setPageSourceFile(addFile(file, screenshotsDirectory.toFile(), fileMode)); }); } @@ -109,8 +118,8 @@ public Screenshot provideScreenshot(File file, FileMode fileMode) { @Override public Report addVideo(Video video, FileMode fileMode) { - File videoDirectory = getReportDirectory(VIDEO_FOLDER_NAME); - video.setFile(addFile(video.getVideoFile(), videoDirectory, fileMode)); + Path videoDirectory = getReportDirectory(VIDEO_FOLDER_NAME); + video.setFile(addFile(video.getVideoFile(), videoDirectory.toFile(), fileMode)); return this; } @@ -124,23 +133,23 @@ public Video provideVideo(File file, FileMode fileMode) { /** * @return Final report directory defined by the user */ - public File getReportDirectory() { + public Path getReportDirectory() { return currentReportDirectory; } /** * @return Final report directory defined by the user */ - public File getFinalReportDirectory() { - return finalReportDirectory; + public Path getFinalReportDirectory() { + return finalReportPath; } @Override public String getRelativePath(File file) { String absFilePath = file.getAbsolutePath(); - for (File dir : Arrays.asList(tempReportDirectory, finalReportDirectory)) { - String absDirPath = dir.getAbsolutePath(); + for (Path path : Arrays.asList(tempReportDirectory, finalReportPath)) { + String absDirPath = path.toAbsolutePath().toString(); if (absFilePath.startsWith(absDirPath)) { return absFilePath.replace(absDirPath, ""); } diff --git a/core/src/main/java/eu/tsystems/mms/tic/testframework/report/Report.java b/core/src/main/java/eu/tsystems/mms/tic/testframework/report/Report.java index 02f099f6dc..a4371e6d53 100644 --- a/core/src/main/java/eu/tsystems/mms/tic/testframework/report/Report.java +++ b/core/src/main/java/eu/tsystems/mms/tic/testframework/report/Report.java @@ -24,8 +24,12 @@ import eu.tsystems.mms.tic.testframework.common.IProperties; import eu.tsystems.mms.tic.testframework.report.model.context.Screenshot; import eu.tsystems.mms.tic.testframework.report.model.context.Video; +import eu.tsystems.mms.tic.testframework.utils.FileUtils; + import java.io.File; import java.lang.annotation.Annotation; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.Optional; public interface Report { @@ -83,32 +87,35 @@ enum Mode { Report addVideo(Video video, FileMode fileMode); Video provideVideo(File file, FileMode fileMode); - File finalizeReport(); + Path finalizeReport(); - File getReportDirectory(); + Path getReportDirectory(); /** * @param childName Child directory or file name * @return Final report sub directory defined by the user */ - default File getReportDirectory(String childName) { - File dir = new File(getReportDirectory(), childName); - if (!dir.exists()) { - dir.mkdirs(); + default Path getReportDirectory(String childName) { + Path path = getReportDirectory().resolve(childName); + if (!Files.exists(path)) { + new FileUtils().createDirectoriesSafely(path); } - return dir; + return path; } - default File getReportFile(String filePath) { - File file = new File(getReportDirectory(), filePath); - File dir = file.getParentFile(); - if (!dir.exists()) { - dir.mkdirs(); + + default Path getReportFile(String filePath) { + Path path = getReportDirectory().resolve(Path.of(filePath)); + Path dir = path.getParent(); + if (!Files.exists(dir)) { + new FileUtils().createDirectoriesSafely(dir); } - return file; + return path; } - File getFinalReportDirectory(); - default File getFinalReportDirectory(String childName) { - return new File(getFinalReportDirectory(), childName); + + Path getFinalReportDirectory(); + + default Path getFinalReportDirectory(String childName) { + return getFinalReportDirectory().resolve(Path.of(childName)); } /** diff --git a/core/src/main/java/eu/tsystems/mms/tic/testframework/utils/FileUtils.java b/core/src/main/java/eu/tsystems/mms/tic/testframework/utils/FileUtils.java index 410429331b..3ffbe6e5d5 100644 --- a/core/src/main/java/eu/tsystems/mms/tic/testframework/utils/FileUtils.java +++ b/core/src/main/java/eu/tsystems/mms/tic/testframework/utils/FileUtils.java @@ -26,6 +26,7 @@ import eu.tsystems.mms.tic.testframework.exceptions.SystemException; import eu.tsystems.mms.tic.testframework.logging.Loggable; import org.apache.commons.io.FilenameUtils; + import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; @@ -37,6 +38,9 @@ import java.net.URISyntaxException; import java.net.URL; import java.net.URLDecoder; +import java.nio.file.FileAlreadyExistsException; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.Objects; import java.util.UUID; @@ -261,9 +265,26 @@ public File createTempFileName(String fileName) { (extension.length() > 0 ? "." + extension : "")); } - public File createTempDir(String dirName) { - File dir = new File(System.getProperty("java.io.tmpdir") + "/" + dirName + "-" + UUID.randomUUID()); - dir.mkdirs(); - return dir; + public Path createTempDir(String dirName) { + try { +// Path dir = Path.of(System.getProperty("java.io.tmpdir"), dirName + "-" + UUID.randomUUID()); + + return Files.createTempDirectory(dirName + "_"); + } catch (IOException e) { + throw new SystemException("Cannot create temporary folder " + dirName, e); + } + } + + public boolean createDirectoriesSafely(Path path) { + try { + Files.createDirectories(path); + return true; + } catch (FileAlreadyExistsException e) { + log().error("Folder already exists: {}", path.toAbsolutePath()); + return false; + } catch (IOException e) { + log().error("Cannot create folder {}: {}", path.toAbsolutePath(), e.getMessage()); + return false; + } } } diff --git a/core/src/main/java/eu/tsystems/mms/tic/testframework/utils/PdfUtils.java b/core/src/main/java/eu/tsystems/mms/tic/testframework/utils/PdfUtils.java index 286ae179d5..887a2a3a0d 100644 --- a/core/src/main/java/eu/tsystems/mms/tic/testframework/utils/PdfUtils.java +++ b/core/src/main/java/eu/tsystems/mms/tic/testframework/utils/PdfUtils.java @@ -36,6 +36,7 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; +import java.nio.file.Path; import java.util.ArrayList; import java.util.List; @@ -280,9 +281,8 @@ private static String getParsedDocumentPath(String fileName) { } FileUtils utils = new FileUtils(); - File tempDir = utils.createTempDir(fileName); - - return tempDir.getAbsolutePath() + File.separator + fileName; + Path tempDir = utils.createTempDir(fileName); + return tempDir.resolve(fileName).toAbsolutePath().toString(); } private static void closeDocument(PDDocument pdDoc) { diff --git a/integration-tests/src/test/java/eu/tsystems/mms/tic/testframework/test/pagefactory/PageFactoryTest.java b/integration-tests/src/test/java/eu/tsystems/mms/tic/testframework/test/pagefactory/PageFactoryTest.java index 42569ead30..19afd424cd 100644 --- a/integration-tests/src/test/java/eu/tsystems/mms/tic/testframework/test/pagefactory/PageFactoryTest.java +++ b/integration-tests/src/test/java/eu/tsystems/mms/tic/testframework/test/pagefactory/PageFactoryTest.java @@ -36,7 +36,9 @@ import org.testng.annotations.DataProvider; import org.testng.annotations.Test; -import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; /** * Tests the responsive page factory for correct instantiated classes. @@ -44,23 +46,23 @@ public class PageFactoryTest extends AbstractTestSitesTest implements PageFactoryProvider, PropertyManagerProvider { @Test - public void testT08_CheckPage_ScreenshotOnLoad() { + public void testT08_CheckPage_ScreenshotOnLoad() throws IOException { - final File reportScreenshotDirectory = Testerra.getInjector().getInstance(Report.class).getReportDirectory(Report.SCREENSHOTS_FOLDER_NAME); + final Path reportScreenshotDirectory = Testerra.getInjector().getInstance(Report.class).getReportDirectory(Report.SCREENSHOTS_FOLDER_NAME); Assert.assertNotNull(reportScreenshotDirectory); final WebDriver driver = getWebDriver(); - final int fileCountBeforeAction = getNumFiles(reportScreenshotDirectory); + final long fileCountBeforeAction = getNumFiles(reportScreenshotDirectory); PROPERTY_MANAGER.setTestLocalProperty(Testerra.Properties.SCREENSHOT_ON_PAGELOAD, false); PAGE_FACTORY.createPage(PageWithExistingElement.class, driver); - final int fileCountAfterCheckPageWithoutScreenshot = getNumFiles(reportScreenshotDirectory); + final long fileCountAfterCheckPageWithoutScreenshot = getNumFiles(reportScreenshotDirectory); Assert.assertEquals(fileCountBeforeAction, fileCountAfterCheckPageWithoutScreenshot, "Record Screenshot count not altered."); PROPERTY_MANAGER.setTestLocalProperty(Testerra.Properties.SCREENSHOT_ON_PAGELOAD, true); PAGE_FACTORY.createPage(PageWithExistingElement.class, driver); - final int fileCountAfterCheckPageWithScreenshot = getNumFiles(reportScreenshotDirectory); + final long fileCountAfterCheckPageWithScreenshot = getNumFiles(reportScreenshotDirectory); Assert.assertNotEquals(fileCountAfterCheckPageWithoutScreenshot, fileCountAfterCheckPageWithScreenshot, "Record Screenshot count altered."); } @@ -112,13 +114,8 @@ public void testT12_LoopDetectionTest_DataProvider_ParallelFalse(String loop) { } } - private int getNumFiles(File directory) { - File[] files = directory.listFiles(); - if (files == null) { - return 0; - } else { - return files.length; - } + private long getNumFiles(Path directory) throws IOException { + return Files.list(directory).count(); } } diff --git a/report-model/src/main/java/eu/tsystems/mms/tic/testframework/listeners/GenerateJUnitXML2ReportListener.java b/report-model/src/main/java/eu/tsystems/mms/tic/testframework/listeners/GenerateJUnitXML2ReportListener.java index f6faa6b3b0..43197f2671 100644 --- a/report-model/src/main/java/eu/tsystems/mms/tic/testframework/listeners/GenerateJUnitXML2ReportListener.java +++ b/report-model/src/main/java/eu/tsystems/mms/tic/testframework/listeners/GenerateJUnitXML2ReportListener.java @@ -198,7 +198,7 @@ protected void generateReport(ITestContext context) { document.pop(); - Utils.writeUtf8File(report.getReportDirectory(Report.XML_FOLDER_NAME).getAbsolutePath(), XML_RESULT_FILENAME, document.toXML()); + Utils.writeUtf8File(report.getReportDirectory(Report.XML_FOLDER_NAME).toAbsolutePath().toString(), XML_RESULT_FILENAME, document.toXML()); } static String formattedTime() { diff --git a/report-ng/src/main/java/eu/tsystems/mms/tic/testframework/hook/ReportNgHook.java b/report-ng/src/main/java/eu/tsystems/mms/tic/testframework/hook/ReportNgHook.java index bf38ac5cec..43ef81fff6 100644 --- a/report-ng/src/main/java/eu/tsystems/mms/tic/testframework/hook/ReportNgHook.java +++ b/report-ng/src/main/java/eu/tsystems/mms/tic/testframework/hook/ReportNgHook.java @@ -30,6 +30,8 @@ import eu.tsystems.mms.tic.testframework.listeners.GenerateReportNgModelListener; import eu.tsystems.mms.tic.testframework.report.Report; +import java.nio.file.Path; + public class ReportNgHook extends AbstractModule implements ModuleHook { @Override @@ -38,8 +40,8 @@ public void init() { Report report = Testerra.getInjector().getInstance(Report.class); - eventBus.register(new CopyReportAppListener(report.getReportDirectory())); - eventBus.register(new GenerateReportNgModelListener(report.getReportDirectory("report-ng/model"))); + eventBus.register(new CopyReportAppListener(report.getReportDirectory().toFile())); + eventBus.register(new GenerateReportNgModelListener(report.getReportDirectory().resolve(Path.of("report-ng/model")).toFile())); } @Override diff --git a/report-ng/src/main/java/eu/tsystems/mms/tic/testframework/listeners/CopyReportAppListener.java b/report-ng/src/main/java/eu/tsystems/mms/tic/testframework/listeners/CopyReportAppListener.java index 6ec2643543..dd7ddbb04a 100644 --- a/report-ng/src/main/java/eu/tsystems/mms/tic/testframework/listeners/CopyReportAppListener.java +++ b/report-ng/src/main/java/eu/tsystems/mms/tic/testframework/listeners/CopyReportAppListener.java @@ -46,6 +46,7 @@ public class CopyReportAppListener implements FinalizeExecutionEvent.Listener, L private File targetDir; + // TODO: Migrate to Path public CopyReportAppListener(File targetDir) { this.targetDir = targetDir; } From 8adcf29b0798425d1f50a284c566a3ca2df3df85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gro=C3=9Fmann?= Date: Wed, 29 Jan 2025 16:36:26 +0100 Subject: [PATCH 2/4] Migrate CopyReportAppListener from File to Path --- .../testframework/report/DefaultReport.java | 25 ++++++------- .../tic/testframework/hook/ReportNgHook.java | 2 +- .../listeners/CopyReportAppListener.java | 36 +++++++++---------- 3 files changed, 30 insertions(+), 33 deletions(-) diff --git a/core/src/main/java/eu/tsystems/mms/tic/testframework/report/DefaultReport.java b/core/src/main/java/eu/tsystems/mms/tic/testframework/report/DefaultReport.java index e2d638ddaf..3b4a1b8cd0 100644 --- a/core/src/main/java/eu/tsystems/mms/tic/testframework/report/DefaultReport.java +++ b/core/src/main/java/eu/tsystems/mms/tic/testframework/report/DefaultReport.java @@ -50,22 +50,16 @@ public DefaultReport() { currentReportDirectory = tempReportDirectory; } - // TODO: Migrate to Path - private File addFile(File sourceFile, File directory, FileMode fileMode) { + private Path addFile(Path sourceFile, Path directory, FileMode fileMode) { try { - switch (fileMode) { - case COPY: - FileUtils.copyFileToDirectory(sourceFile, directory, true); - break; - default: - case MOVE: - FileUtils.moveFileToDirectory(sourceFile, directory, true); - break; + PathUtils.copyFileToDirectory(sourceFile, directory); + if (fileMode == FileMode.MOVE) { + Files.delete(sourceFile); } } catch (IOException e) { log().error("Could not add file", e); } - return new File(directory, sourceFile.getName()); + return directory.resolve(sourceFile.getFileName()); } public Path finalizeReport() { @@ -95,11 +89,13 @@ public Path finalizeReport() { private void addScreenshotFiles(Screenshot screenshot, FileMode fileMode) { Path screenshotsDirectory = getReportDirectory(SCREENSHOTS_FOLDER_NAME); if (screenshot.getScreenshotFile() != null) { - screenshot.setFile(addFile(screenshot.getScreenshotFile(), screenshotsDirectory.toFile(), fileMode)); + Path path = addFile(screenshot.getScreenshotFile().toPath(), screenshotsDirectory, fileMode); + screenshot.setFile(path.toFile()); } screenshot.getPageSourceFile().ifPresent(file -> { - screenshot.setPageSourceFile(addFile(file, screenshotsDirectory.toFile(), fileMode)); + Path path = addFile(file.toPath(), screenshotsDirectory, fileMode); + screenshot.setPageSourceFile(path.toFile()); }); } @@ -119,7 +115,8 @@ public Screenshot provideScreenshot(File file, FileMode fileMode) { @Override public Report addVideo(Video video, FileMode fileMode) { Path videoDirectory = getReportDirectory(VIDEO_FOLDER_NAME); - video.setFile(addFile(video.getVideoFile(), videoDirectory.toFile(), fileMode)); + Path path = addFile(video.getVideoFile().toPath(), videoDirectory, fileMode); + video.setFile(path.toFile()); return this; } diff --git a/report-ng/src/main/java/eu/tsystems/mms/tic/testframework/hook/ReportNgHook.java b/report-ng/src/main/java/eu/tsystems/mms/tic/testframework/hook/ReportNgHook.java index 43ef81fff6..820b6d61de 100644 --- a/report-ng/src/main/java/eu/tsystems/mms/tic/testframework/hook/ReportNgHook.java +++ b/report-ng/src/main/java/eu/tsystems/mms/tic/testframework/hook/ReportNgHook.java @@ -40,7 +40,7 @@ public void init() { Report report = Testerra.getInjector().getInstance(Report.class); - eventBus.register(new CopyReportAppListener(report.getReportDirectory().toFile())); + eventBus.register(new CopyReportAppListener(report.getReportDirectory())); eventBus.register(new GenerateReportNgModelListener(report.getReportDirectory().resolve(Path.of("report-ng/model")).toFile())); } diff --git a/report-ng/src/main/java/eu/tsystems/mms/tic/testframework/listeners/CopyReportAppListener.java b/report-ng/src/main/java/eu/tsystems/mms/tic/testframework/listeners/CopyReportAppListener.java index dd7ddbb04a..f8a5751008 100644 --- a/report-ng/src/main/java/eu/tsystems/mms/tic/testframework/listeners/CopyReportAppListener.java +++ b/report-ng/src/main/java/eu/tsystems/mms/tic/testframework/listeners/CopyReportAppListener.java @@ -24,13 +24,13 @@ import com.google.common.eventbus.Subscribe; import eu.tsystems.mms.tic.testframework.events.FinalizeExecutionEvent; import eu.tsystems.mms.tic.testframework.logging.Loggable; -import java.net.URL; import org.apache.commons.lang3.StringUtils; -import java.io.File; + import java.io.IOException; import java.io.InputStream; import java.net.URI; import java.net.URISyntaxException; +import java.net.URL; import java.nio.file.FileSystem; import java.nio.file.FileSystems; import java.nio.file.Files; @@ -40,15 +40,13 @@ import java.util.Collections; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.apache.commons.io.FileUtils; public class CopyReportAppListener implements FinalizeExecutionEvent.Listener, Loggable { - private File targetDir; + private final Path targetPath; - // TODO: Migrate to Path - public CopyReportAppListener(File targetDir) { - this.targetDir = targetDir; + public CopyReportAppListener(Path targetPath) { + this.targetPath = targetPath; } @Subscribe @@ -61,8 +59,9 @@ public void onFinalizeExecution(FinalizeExecutionEvent event) { if (resourceStream == null) { throw new Exception("Could not open stream: " + stringRepresentationOfResourcePath); } - final File targetFile = new File(this.targetDir, resourcePath.toString()); - FileUtils.copyInputStreamToFile(resourceStream, targetFile); + final Path finalPath = targetPath.resolve(resourcePath.toString()); + Files.createDirectories(finalPath.getParent()); + Files.copy(resourceStream, finalPath); } } } catch (Exception e) { @@ -73,19 +72,20 @@ public void onFinalizeExecution(FinalizeExecutionEvent event) { /** * This methods tries to read all files from a resource directory. * When this methods runs inside a JAR, it reads the directory listing from the JAR's resource folder: - * application.jar#/folder/... + * application.jar#/folder/... * and maps them to relative resource paths: - * /folder/file1.jpg - * /folder/file2.js - * ... + * /folder/file1.jpg + * /folder/file2.js + * ... * Otherwise, it reads the directory listing from the local resource folder: - * ../build/resources/main/folder/... + * ../build/resources/main/folder/... * and maps the files to relative resource paths: - * /folder/file1.jpg - * /folder/file2.js - * ... - * + * /folder/file1.jpg + * /folder/file2.js + * ... + *

* In both cases, you need to read the actual resource by {@link ClassLoader#getResource(String)}. + * * @see {https://mkyong.com/java/java-read-a-file-from-resources-folder/} */ private Stream getPathsFromResource(String folder) throws URISyntaxException, IOException { From eaa8fd564bc0524079e44848d7709faee6b16ad6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gro=C3=9Fmann?= Date: Wed, 29 Jan 2025 17:09:03 +0100 Subject: [PATCH 3/4] Fix name of temporary report dir --- .../eu/tsystems/mms/tic/testframework/report/DefaultReport.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/eu/tsystems/mms/tic/testframework/report/DefaultReport.java b/core/src/main/java/eu/tsystems/mms/tic/testframework/report/DefaultReport.java index 3b4a1b8cd0..8ed3e287ca 100644 --- a/core/src/main/java/eu/tsystems/mms/tic/testframework/report/DefaultReport.java +++ b/core/src/main/java/eu/tsystems/mms/tic/testframework/report/DefaultReport.java @@ -45,7 +45,7 @@ public class DefaultReport implements Report, Loggable { public DefaultReport() { FileUtils fileUtils = new FileUtils(); - tempReportDirectory = fileUtils.createTempDir(baseDir); + tempReportDirectory = fileUtils.createTempDir("test-report"); log().debug("Prepare report in " + tempReportDirectory.toAbsolutePath()); currentReportDirectory = tempReportDirectory; } From 0edd4065e069384c4a49a9d4406529a7872ae3c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gro=C3=9Fmann?= Date: Thu, 30 Jan 2025 16:38:45 +0100 Subject: [PATCH 4/4] Added create temp dir for Linux --- .../eu/tsystems/mms/tic/testframework/report/DefaultReport.java | 1 + 1 file changed, 1 insertion(+) diff --git a/core/src/main/java/eu/tsystems/mms/tic/testframework/report/DefaultReport.java b/core/src/main/java/eu/tsystems/mms/tic/testframework/report/DefaultReport.java index 8ed3e287ca..5fe0209ae5 100644 --- a/core/src/main/java/eu/tsystems/mms/tic/testframework/report/DefaultReport.java +++ b/core/src/main/java/eu/tsystems/mms/tic/testframework/report/DefaultReport.java @@ -70,6 +70,7 @@ public Path finalizeReport() { if (Files.exists(tempReportDirectory)) { log().debug("Temporary directory is {}", tempReportDirectory); + Files.createDirectories(finalReportPath); PathUtils.copyDirectory(tempReportDirectory, finalReportPath); currentReportDirectory = finalReportPath; log().info("Report written to " + finalReportPath.toAbsolutePath());