From 0fc5dc27d70cf9d51fa4b697e5d0944ded29dda5 Mon Sep 17 00:00:00 2001 From: Mikael Grankvist Date: Fri, 8 May 2026 14:45:34 +0300 Subject: [PATCH 1/2] fix: Use same default for mojos Record and convert use the same default outputDir. Run mojo defaults to default outputDir if testDir not specified. testFiles, testFile and testDir are not collected together. if testFiles or testFile set no testDir is checked. if testFiles set no testFile is added. --- .../testbench/loadtest/AbstractK6Mojo.java | 9 +++++ .../loadtest/AbstractRecordMojo.java | 6 --- .../testbench/loadtest/K6ConvertMojo.java | 7 ---- .../vaadin/testbench/loadtest/K6RunMojo.java | 38 +++++++++---------- 4 files changed, 28 insertions(+), 32 deletions(-) diff --git a/vaadin-testbench-loadtest/testbench-converter-plugin/src/main/java/com/vaadin/testbench/loadtest/AbstractK6Mojo.java b/vaadin-testbench-loadtest/testbench-converter-plugin/src/main/java/com/vaadin/testbench/loadtest/AbstractK6Mojo.java index fc904c1dc..5d62710fa 100644 --- a/vaadin-testbench-loadtest/testbench-converter-plugin/src/main/java/com/vaadin/testbench/loadtest/AbstractK6Mojo.java +++ b/vaadin-testbench-loadtest/testbench-converter-plugin/src/main/java/com/vaadin/testbench/loadtest/AbstractK6Mojo.java @@ -8,6 +8,7 @@ */ package com.vaadin.testbench.loadtest; +import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; @@ -51,6 +52,14 @@ public abstract class AbstractK6Mojo extends AbstractMojo { @Parameter(property = "k6.utilsDir", defaultValue = "${project.build.directory}/k6-utils") protected String utilsDir; + /** + * Directory for generated k6 tests. Used as the destination by the record + * and convert goals, and as the default test directory by the run goal when + * {@code k6.testDir} is not set. + */ + @Parameter(property = "k6.outputDir", defaultValue = "${project.build.directory}/k6/tests") + protected File outputDir; + /** * Skip execution of this goal. */ diff --git a/vaadin-testbench-loadtest/testbench-converter-plugin/src/main/java/com/vaadin/testbench/loadtest/AbstractRecordMojo.java b/vaadin-testbench-loadtest/testbench-converter-plugin/src/main/java/com/vaadin/testbench/loadtest/AbstractRecordMojo.java index 2f0042b66..2d70aa7e7 100644 --- a/vaadin-testbench-loadtest/testbench-converter-plugin/src/main/java/com/vaadin/testbench/loadtest/AbstractRecordMojo.java +++ b/vaadin-testbench-loadtest/testbench-converter-plugin/src/main/java/com/vaadin/testbench/loadtest/AbstractRecordMojo.java @@ -67,12 +67,6 @@ public abstract class AbstractRecordMojo extends AbstractK6Mojo { @Parameter(property = "k6.harDir", defaultValue = "${project.build.directory}") protected File harDir; - /** - * Output directory for generated k6 tests. - */ - @Parameter(property = "k6.outputDir", defaultValue = "${project.build.directory}/k6/tests") - protected File outputDir; - /** * Timeout for test execution in seconds. */ diff --git a/vaadin-testbench-loadtest/testbench-converter-plugin/src/main/java/com/vaadin/testbench/loadtest/K6ConvertMojo.java b/vaadin-testbench-loadtest/testbench-converter-plugin/src/main/java/com/vaadin/testbench/loadtest/K6ConvertMojo.java index 3a8e275eb..7be3349b3 100644 --- a/vaadin-testbench-loadtest/testbench-converter-plugin/src/main/java/com/vaadin/testbench/loadtest/K6ConvertMojo.java +++ b/vaadin-testbench-loadtest/testbench-converter-plugin/src/main/java/com/vaadin/testbench/loadtest/K6ConvertMojo.java @@ -42,13 +42,6 @@ public class K6ConvertMojo extends AbstractK6Mojo { @Parameter(property = "k6.harFile", required = true) private File harFile; - /** - * Output directory for generated k6 tests. Defaults to k6/tests within the - * target directory. - */ - @Parameter(property = "k6.outputDir", defaultValue = "${project.build.directory}/k6/tests") - private File outputDir; - /** * Output file name for the generated test. If not specified, derives from * HAR file name. diff --git a/vaadin-testbench-loadtest/testbench-converter-plugin/src/main/java/com/vaadin/testbench/loadtest/K6RunMojo.java b/vaadin-testbench-loadtest/testbench-converter-plugin/src/main/java/com/vaadin/testbench/loadtest/K6RunMojo.java index 2125e3f25..2bc37eea9 100644 --- a/vaadin-testbench-loadtest/testbench-converter-plugin/src/main/java/com/vaadin/testbench/loadtest/K6RunMojo.java +++ b/vaadin-testbench-loadtest/testbench-converter-plugin/src/main/java/com/vaadin/testbench/loadtest/K6RunMojo.java @@ -74,7 +74,7 @@ public class K6RunMojo extends AbstractK6Mojo { /** * Directory containing k6 test files. All .js files (excluding helpers) - * will be run. + * will be run. If not set, defaults to {@code k6.outputDir}. */ @Parameter(property = "k6.testDir") private File testDir; @@ -621,12 +621,14 @@ private String fileToScenarioName(Path file) { } /** - * Builds the list of test files to run from configuration. + * Builds the list of test files to run from configuration. Resolution + * order: {@code testFiles} takes precedence; otherwise {@code testFile}; + * otherwise the test directory ({@code testDir}, falling back to the + * shared {@code outputDir}). */ private List getTestFilesToRun() throws MojoExecutionException { List result = new ArrayList<>(); - // Add from testFiles list if (testFiles != null && !testFiles.isEmpty()) { for (File f : testFiles) { Path path = f.toPath().toAbsolutePath(); @@ -636,38 +638,36 @@ private List getTestFilesToRun() throws MojoExecutionException { } result.add(path); } + return result; } - // Add single testFile if specified if (testFile != null) { Path path = testFile.toPath().toAbsolutePath(); if (!Files.exists(path)) { throw new MojoExecutionException( "Test file not found: " + path); } - if (!result.contains(path)) { - result.add(path); - } + result.add(path); + return result; } - // Add all .js files from testDir (excluding helpers, generated, and - // combined) - if (testDir != null && testDir.exists() && testDir.isDirectory()) { - try (Stream files = Files.list(testDir.toPath())) { - files.filter(p -> p.toString().endsWith(".js")).filter( - p -> !p.getFileName().toString().contains("helper")) + File effectiveTestDir = testDir != null ? testDir : outputDir; + if (effectiveTestDir != null && effectiveTestDir.exists() + && effectiveTestDir.isDirectory()) { + try (Stream files = Files.list(effectiveTestDir.toPath())) { + files.filter(p -> p.toString().endsWith(".js")) + .filter(p -> !p.getFileName().toString() + .contains("helper")) .filter(p -> !p.getFileName().toString() .contains("-generated")) .filter(p -> !p.getFileName().toString() .equals("combined-scenarios.js")) - .sorted().forEach(p -> { - if (!result.contains(p.toAbsolutePath())) { - result.add(p.toAbsolutePath()); - } - }); + .sorted() + .forEach(p -> result.add(p.toAbsolutePath())); } catch (IOException e) { throw new MojoExecutionException( - "Failed to list test directory: " + testDir, e); + "Failed to list test directory: " + effectiveTestDir, + e); } } From b640d5ddf8e2fe88cbc3bdf59540773cc21857f7 Mon Sep 17 00:00:00 2001 From: Mikael Grankvist Date: Fri, 8 May 2026 14:50:59 +0300 Subject: [PATCH 2/2] format --- .../com/vaadin/testbench/loadtest/K6RunMojo.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/vaadin-testbench-loadtest/testbench-converter-plugin/src/main/java/com/vaadin/testbench/loadtest/K6RunMojo.java b/vaadin-testbench-loadtest/testbench-converter-plugin/src/main/java/com/vaadin/testbench/loadtest/K6RunMojo.java index 2bc37eea9..bf4e47258 100644 --- a/vaadin-testbench-loadtest/testbench-converter-plugin/src/main/java/com/vaadin/testbench/loadtest/K6RunMojo.java +++ b/vaadin-testbench-loadtest/testbench-converter-plugin/src/main/java/com/vaadin/testbench/loadtest/K6RunMojo.java @@ -623,8 +623,8 @@ private String fileToScenarioName(Path file) { /** * Builds the list of test files to run from configuration. Resolution * order: {@code testFiles} takes precedence; otherwise {@code testFile}; - * otherwise the test directory ({@code testDir}, falling back to the - * shared {@code outputDir}). + * otherwise the test directory ({@code testDir}, falling back to the shared + * {@code outputDir}). */ private List getTestFilesToRun() throws MojoExecutionException { List result = new ArrayList<>(); @@ -655,15 +655,13 @@ private List getTestFilesToRun() throws MojoExecutionException { if (effectiveTestDir != null && effectiveTestDir.exists() && effectiveTestDir.isDirectory()) { try (Stream files = Files.list(effectiveTestDir.toPath())) { - files.filter(p -> p.toString().endsWith(".js")) - .filter(p -> !p.getFileName().toString() - .contains("helper")) + files.filter(p -> p.toString().endsWith(".js")).filter( + p -> !p.getFileName().toString().contains("helper")) .filter(p -> !p.getFileName().toString() .contains("-generated")) .filter(p -> !p.getFileName().toString() .equals("combined-scenarios.js")) - .sorted() - .forEach(p -> result.add(p.toAbsolutePath())); + .sorted().forEach(p -> result.add(p.toAbsolutePath())); } catch (IOException e) { throw new MojoExecutionException( "Failed to list test directory: " + effectiveTestDir,