{@code * ./bld compile test * ./bld compile jacoco @@ -35,7 +36,7 @@ public class ExamplesBuild extends BaseProject { repositories = List.of(MAVEN_CENTRAL); - scope(test).include(dependency("org.testng", "testng", version(7, 11, 0))); + scope(test).include(dependency("org.testng", "testng", version(7, 10, 2))); } public static void main(String[] args) { diff --git a/lib/bld/bld-wrapper.jar b/lib/bld/bld-wrapper.jar index 97c0a4b..ee23353 100644 Binary files a/lib/bld/bld-wrapper.jar and b/lib/bld/bld-wrapper.jar differ diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index c5da09f..79b2f59 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,8 +1,8 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true bld.downloadLocation= -bld.extension-exec=com.uwyn.rife2:bld-exec:1.0.4 -bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.2.1 +bld.extension-exec=com.uwyn.rife2:bld-exec:1.0.2 +bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.1.4 bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.sourceDirectories= -bld.version=2.2.1 +bld.version=2.0.1 diff --git a/src/bld/java/rife/bld/extension/TestNgOperationBuild.java b/src/bld/java/rife/bld/extension/TestNgOperationBuild.java index 88f713c..4c85037 100644 --- a/src/bld/java/rife/bld/extension/TestNgOperationBuild.java +++ b/src/bld/java/rife/bld/extension/TestNgOperationBuild.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2025 the original author or authors. + * Copyright 2023-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,7 +24,10 @@ import rife.bld.publish.PublishScm; import java.util.List; -import static rife.bld.dependencies.Repository.*; +import static rife.bld.dependencies.Repository.MAVEN_CENTRAL; +import static rife.bld.dependencies.Repository.MAVEN_LOCAL; +import static rife.bld.dependencies.Repository.RIFE2_RELEASES; +import static rife.bld.dependencies.Repository.RIFE2_SNAPSHOTS; import static rife.bld.dependencies.Scope.compile; import static rife.bld.dependencies.Scope.test; import static rife.bld.operations.JavadocOptions.DocLinkOption.NO_MISSING; @@ -33,23 +36,22 @@ public class TestNgOperationBuild extends Project { public TestNgOperationBuild() { pkg = "rife.bld.extension"; name = "bld-testng"; - version = version(1, 0, 3, "SNAPSHOT"); + version = version(0, 9, 9); javaRelease = 17; downloadSources = true; autoDownloadPurge = true; - repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL, RIFE2_RELEASES, RIFE2_SNAPSHOTS); scope(compile) - .include(dependency("com.uwyn.rife2", "bld", version(2, 2, 1))); + .include(dependency("com.uwyn.rife2", "bld", version(2, 0, 1))); scope(test) - .include(dependency("org.testng", "testng", version(7, 11, 0))) - .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 12, 1))) - .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 12, 1))) - .include(dependency("org.assertj", "assertj-core", version(3, 27, 3))); + .include(dependency("org.testng", "testng", version(7, 10, 2))) + .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 3))) + .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 3))) + .include(dependency("org.assertj", "assertj-core", version(3, 26, 3))); javadocOperation() .javadocOptions() @@ -60,26 +62,28 @@ public class TestNgOperationBuild extends Project { publishOperation() .repository(version.isSnapshot() ? repository("rife2-snapshot") : repository("rife2")) - .repository(repository("github")) .info() .groupId("com.uwyn.rife2") .artifactId("bld-testng") .description("bld Extension to execute tests with TestNG") .url("https://github.com/rife2/bld-testng") - .developer(new PublishDeveloper() - .id("ethauvin") - .name("Erik C. Thauvin") - .email("erik@thauvin.net") - .url("https://erik.thauvin.net/") + .developer( + new PublishDeveloper() + .id("ethauvin") + .name("Erik C. Thauvin") + .email("erik@thauvin.net") + .url("https://erik.thauvin.net/") ) - .license(new PublishLicense() - .name("The Apache License, Version 2.0") - .url("https://www.apache.org/licenses/LICENSE-2.0.txt") + .license( + new PublishLicense() + .name("The Apache License, Version 2.0") + .url("https://www.apache.org/licenses/LICENSE-2.0.txt") ) - .scm(new PublishScm() - .connection("scm:git:https://github.com/rife2/bld-testng.git") - .developerConnection("scm:git:git@github.com:rife2/bld-testng.git") - .url("https://github.com/rife2/bld-testng") + .scm( + new PublishScm() + .connection("scm:git:https://github.com/rife2/bld-testng.git") + .developerConnection("scm:git:git@github.com:rife2/bld-testng.git") + .url("https://github.com/rife2/bld-testng") ) .signKey(property("sign.key")) .signPassphrase(property("sign.passphrase")); @@ -100,13 +104,10 @@ public class TestNgOperationBuild extends Project { @Override public void test() throws Exception { - var os = System.getProperty("os.name"); - if (os != null && os.toLowerCase().contains("linux")) { - new ExecOperation() - .fromProject(this) - .command("scripts/cliargs.sh") - .execute(); - } + new ExecOperation() + .fromProject(this) + .command("scripts/cliargs.sh") + .execute(); super.test(); } } diff --git a/src/main/java/rife/bld/extension/TestNgOperation.java b/src/main/java/rife/bld/extension/TestNgOperation.java index 298857f..7eef93e 100644 --- a/src/main/java/rife/bld/extension/TestNgOperation.java +++ b/src/main/java/rife/bld/extension/TestNgOperation.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2025 the original author or authors. + * Copyright 2023-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -75,19 +75,6 @@ public class TestNgOperation extends TestOperationreturn this; } - private String buildClassPath(String... path) { - var classpath = new StringBuilder(); - for (var p : path) { - if (!p.isBlank()) { - if (!classpath.isEmpty()) { - classpath.append(File.pathSeparator); - } - classpath.append(p); - } - } - return classpath.toString(); - } - /** * This sets the default maximum number of threads to use for data providers when running tests in parallel. * It will only take effect if the parallel mode has been selected (for example,with the @@ -131,30 +118,6 @@ public class TestNgOperation extends TestOperation return this; } - /** - * The directory where the reports will be generated - * - * Default is {@code build/test-output})
- * - * @param directoryPath the directory path - * @return this operation instance - */ - public TestNgOperation directory(File directoryPath) { - return directory(directoryPath.getAbsolutePath()); - } - - /** - * The directory where the reports will be generated - * - *Default is {@code build/test-output})
- * - * @param directoryPath the directory path - * @return this operation instance - */ - public TestNgOperation directory(Path directoryPath) { - return directory(directoryPath.toFile()); - } - /** * The list of groups you want to be excluded from this run. * @@ -163,7 +126,8 @@ public class TestNgOperation extends TestOperation* @see #excludeGroups(Collection) #excludeGroups(Collection) */ public TestNgOperation excludeGroups(String... group) { - return excludeGroups(List.of(group)); + options_.put("-excludegroups", String.join(",", Arrays.stream(group).filter(this::isNotBlank).toList())); + return this; } /** @@ -215,13 +179,11 @@ public class TestNgOperation extends TestOperation args.add("-cp"); if (testClasspath_.isEmpty()) { - args.add(buildClassPath(joinClasspathJar(project_.testClasspathJars()), - joinClasspathJar(project_.compileClasspathJars()), - joinClasspathJar(project_.providedClasspathJars()), - project_.buildMainDirectory().getAbsolutePath(), - project_.buildTestDirectory().getAbsolutePath())); + args.add(String.format("%s:%s:%s:%s", new File(project_.libTestDirectory(), "*"), + new File(project_.libCompileDirectory(), "*"), project_.buildMainDirectory(), + project_.buildTestDirectory())); } else { - args.add(String.join(File.pathSeparator, testClasspath_)); + args.add(String.join(":", testClasspath_)); } args.add("org.testng.TestNG"); @@ -239,7 +201,7 @@ public class TestNgOperation extends TestOperation } catch (IOException ioe) { if (LOGGER.isLoggable(Level.SEVERE) && !silent()) { LOGGER.severe("An IO error occurred while accessing the default testng.xml file: " - + ioe.getMessage()); + + ioe.getMessage()); } throw new RuntimeException(ioe); } @@ -323,7 +285,8 @@ public class TestNgOperation extends TestOperation * @see #groups(Collection) #groups(Collection) */ public TestNgOperation groups(String... group) { - return groups(List.of(group)); + options_.put("-groups", String.join(",", Arrays.stream(group).filter(this::isNotBlank).toList())); + return this; } /** @@ -387,14 +350,6 @@ public class TestNgOperation extends TestOperation return this; } - private String joinClasspathJar(List jars) { - if (!jars.isEmpty()) { - return String.join(File.pathSeparator, jars.stream().map(File::getAbsolutePath).toList()); - } else { - return ""; - } - } - /** * The list of {@code .class} files or list of class names implementing {@code ITestListener} or * {@code ISuiteListener} @@ -404,7 +359,8 @@ public class TestNgOperation extends TestOperation * @see #listener(Collection) #listener(Collection) */ public TestNgOperation listener(String... listener) { - return listener(List.of(listener)); + options_.put("-listener", String.join(",", Arrays.stream(listener).filter(this::isNotBlank).toList())); + return this; } /** @@ -467,7 +423,9 @@ public class TestNgOperation extends TestOperation * @see #methodSelectors(Collection) #methodSelectors(Collection) */ public TestNgOperation methodSelectors(String... selector) { - return methodSelectors(List.of(selector)); + options_.put("-methodselectors", + String.join(",", Arrays.stream(selector).filter(this::isNotBlank).toList())); + return this; } /** @@ -494,7 +452,8 @@ public class TestNgOperation extends TestOperation * @see #methods(Collection) #methods(Collection) */ public TestNgOperation methods(String... method) { - return methods(List.of(method)); + methods_.addAll(List.of(method)); + return this; } /** @@ -534,24 +493,31 @@ public class TestNgOperation extends TestOperation } /** - * The list of {@code .class} files or class names implementing {@code ITestRunnerFactory}. - * - * A fully qualified class name that implements {@code org.testng.ITestObjectFactory} which can be used to create + * Fully qualified class name that implements {@code org.testng.ITestObjectFactory} which can be used to create * test class and listener instances. * - * @param factory one or more factory + * @param objectFactory the object factory * @return this operation instance - * @see #objectFactory(Collection) #objectFactory(Collection) */ - public TestNgOperation objectFactory(String... factory) { - return objectFactory(List.of(factory)); + public TestNgOperation objectFactory(String objectFactory) { + options_.put("-objectfactory", objectFactory); + return this; + } + + /** + * The list of {@code .class} files or class names implementing {@code ITestRunnerFactory}. + * + * @param factory one or more factories + * @return this operation instance + * @see #objectFactory(Collection) #objectFactory(Collection) + */ + public TestNgOperation objectFactory(String... factory) { + options_.put("-objectfactory", String.join(",", Arrays.stream(factory).filter(this::isNotBlank).toList())); + return this; } /** * The list of {@code .class} files or class names implementing {@code ITestRunnerFactory}. - *
- * A fully qualified class name that implements {@code org.testng.ITestObjectFactory} which can be used to create - * test class and listener instances. * * @param factory the list of factories * @return this operation instance @@ -580,7 +546,9 @@ public class TestNgOperation extends TestOperation
* @see #overrideIncludedMethods(Collection) #overrideIncludedMethods(Collection) */ public TestNgOperation overrideIncludedMethods(String... method) { - return overrideIncludedMethods(List.of(method)); + options_.put("-overrideincludedmethods", + String.join(",", Arrays.stream(method).filter(this::isNotBlank).toList())); + return this; } /** @@ -608,7 +576,8 @@ public class TestNgOperation extends TestOperation * @see #packages(Collection) #packages(Collection) */ public TestNgOperation packages(String... name) { - return packages(List.of(name)); + packages_.addAll(Arrays.stream(name).filter(this::isNotBlank).toList()); + return this; } /** @@ -709,49 +678,10 @@ public class TestNgOperation extends TestOperation * * @param directory one or more directories * @return this operation instance - * @see #sourceDir(Collection) + * @see #sourceDir(String...) #sourceDir(String...) */ public TestNgOperation sourceDir(String... directory) { - return sourceDir(List.of(directory)); - } - - /** - * The directories where your javadoc annotated test sources are. This option is only necessary - * if you are using javadoc type annotations. (e.g. {@code "src/test"} or - * {@code "src/test/org/testng/eclipse-plugin", "src/test/org/testng/testng"}). - * - * @param directory one or more directories - * @return this operation instance - * @see #sourceDirFiles(Collection) - */ - public TestNgOperation sourceDir(File... directory) { - return sourceDirFiles(List.of(directory)); - } - - /** - * The directories where your javadoc annotated test sources are. This option is only necessary - * if you are using javadoc type annotations. (e.g. {@code "src/test"} or - * {@code "src/test/org/testng/eclipse-plugin", "src/test/org/testng/testng"}). - * - * @param directory one or more directories - * @return this operation instance - * @see #sourceDirPaths(Collection) - */ - public TestNgOperation sourceDir(Path... directory) { - return sourceDirPaths(List.of(directory)); - } - - /** - * The directories where your javadoc annotated test sources are. This option is only necessary - * if you are using javadoc type annotations. (e.g. {@code "src/test"} or - * {@code "src/test/org/testng/eclipse-plugin", "src/test/org/testng/testng"}). - * - * @param directory the list of directories - * @return this operation instance - * @see #sourceDir(String...) - */ - public TestNgOperation sourceDir(Collection directory) { - options_.put("-sourcedir", String.join(";", directory.stream().filter(this::isNotBlank).toList())); + options_.put("-sourcedir", String.join(";", Arrays.stream(directory).filter(this::isNotBlank).toList())); return this; } @@ -762,23 +692,11 @@ public class TestNgOperation extends TestOperation * * @param directory the list of directories * @return this operation instance - * @see #sourceDir(File...) + * @see #sourceDir(String...) #sourceDir(String...) */ - public TestNgOperation sourceDirFiles(Collection directory) { - return sourceDir(directory.stream().map(File::getAbsolutePath).toList()); - } - - /** - * The directories where your javadoc annotated test sources are. This option is only necessary - * if you are using javadoc type annotations. (e.g. {@code "src/test"} or - * {@code "src/test/org/testng/eclipse-plugin", "src/test/org/testng/testng"}). - * - * @param directory the list of directories - * @return this operation instance - * @see #sourceDir(Path...) - */ - public TestNgOperation sourceDirPaths(Collection directory) { - return sourceDirFiles(directory.stream().map(Path::toFile).toList()); + public TestNgOperation sourceDir(Collection directory) { + options_.put("-sourcedir", String.join(";", directory.stream().filter(this::isNotBlank).toList())); + return this; } /** @@ -790,7 +708,9 @@ public class TestNgOperation extends TestOperation * @see #spiListenersToSkip(Collection) #spiListenersToSkip(Collection) */ public TestNgOperation spiListenersToSkip(String... listenerToSkip) { - return spiListenersToSkip(List.of(listenerToSkip)); + options_.put("-spilistenerstoskip", + String.join(",", Arrays.stream(listenerToSkip).filter(this::isNotBlank).toList())); + return this; } /** @@ -845,7 +765,8 @@ public class TestNgOperation extends TestOperation * @see #suites(Collection) #suites(Collection) */ public TestNgOperation suites(String... suite) { - return suites(List.of(suite)); + suites_.addAll(Arrays.stream(suite).filter(this::isNotBlank).toList()); + return this; } /** @@ -892,7 +813,8 @@ public class TestNgOperation extends TestOperation * @see #testClass(Collection) #testClass(Collection) */ public TestNgOperation testClass(String... aClass) { - return testClass(List.of(aClass)); + options_.put("-testclass", String.join(",", Arrays.stream(aClass).filter(this::isNotBlank).toList())); + return this; } /** @@ -917,7 +839,8 @@ public class TestNgOperation extends TestOperation * @see #testClasspath(String...) #testClasspath(String...) */ public TestNgOperation testClasspath(String... entry) { - return testClasspath(List.of(entry)); + testClasspath_.addAll(Arrays.stream(entry).filter(this::isNotBlank).toList()); + return this; } /** @@ -978,7 +901,9 @@ public class TestNgOperation extends TestOperation * @see #testNames(Collection) #testNames(Collection) */ public TestNgOperation testNames(String... name) { - return testNames(List.of(name)); + options_.put("-testnames", + Arrays.stream(name).filter(this::isNotBlank).map(s -> '"' + s + '"').collect(Collectors.joining(","))); + return this; } /** @@ -1079,10 +1004,10 @@ public class TestNgOperation extends TestOperation var temp = tempFile(); try (var bufWriter = Files.newBufferedWriter(Paths.get(temp.getPath()))) { bufWriter.write("" + - "" + - " " + - " " + - " "); + "" + + " " + + " " + + " "); for (var p : packages_) { bufWriter.write(String.format(" ", p)); } @@ -1106,30 +1031,6 @@ public class TestNgOperation extends TestOperation return this; } - /** - * This attribute should contain the path to a valid XML file inside the test jar - * (e.g. {@code "resources/testng.xml"}). The default is {@code testng.xml}, which means a file called - * {@code testng.xml} at the root of the jar file. This option will be ignored unless a test jar is specified. - * - * @param path the path - * @return this operation instance - */ - public TestNgOperation xmlPathInJar(File path) { - return xmlPathInJar(path.getAbsolutePath()); - } - - /** - * This attribute should contain the path to a valid XML file inside the test jar - * (e.g. {@code "resources/testng.xml"}). The default is {@code testng.xml}, which means a file called - * {@code testng.xml} at the root of the jar file. This option will be ignored unless a test jar is specified. - * - * @param path the path - * @return this operation instance - */ - public TestNgOperation xmlPathInJar(Path path) { - return xmlPathInJar(path.toFile()); - } - /** * Parallel Mechanisms */ diff --git a/src/test/java/rife/bld/extension/TestNgExample.java b/src/test/java/rife/bld/extension/TestNgExample.java index faa223a..c2dc3e0 100644 --- a/src/test/java/rife/bld/extension/TestNgExample.java +++ b/src/test/java/rife/bld/extension/TestNgExample.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2025 the original author or authors. + * Copyright 2023-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,9 +22,8 @@ package rife.bld.extension; * @author Erik C. Thauvin * @since 1.0 */ -@SuppressWarnings({"PMD.TestClassWithoutTestCases", "unused"}) +@SuppressWarnings("PMD.TestClassWithoutTestCases") class TestNgExample { - @SuppressWarnings("SameReturnValue") public String getMessage() { return "Hello World!"; } diff --git a/src/test/java/rife/bld/extension/TestNgExampleTest.java b/src/test/java/rife/bld/extension/TestNgExampleTest.java index 6d3c9b0..a2c35b9 100644 --- a/src/test/java/rife/bld/extension/TestNgExampleTest.java +++ b/src/test/java/rife/bld/extension/TestNgExampleTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2025 the original author or authors. + * Copyright 2023-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +25,6 @@ import org.testng.annotations.Test; * @author Erik C. Thauvin * @since 1.0 */ -@SuppressWarnings("unused") class TestNgExampleTest { private final TestNgExample example = new TestNgExample(); diff --git a/src/test/java/rife/bld/extension/TestNgOperationTest.java b/src/test/java/rife/bld/extension/TestNgOperationTest.java index d4f3193..83b1f80 100644 --- a/src/test/java/rife/bld/extension/TestNgOperationTest.java +++ b/src/test/java/rife/bld/extension/TestNgOperationTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2025 the original author or authors. + * Copyright 2023-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,10 +16,7 @@ package rife.bld.extension; -import org.assertj.core.api.AutoCloseableSoftAssertions; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.condition.EnabledOnOs; -import org.junit.jupiter.api.condition.OS; import rife.bld.Project; import rife.bld.blueprints.BaseProjectBlueprint; import rife.bld.operations.exceptions.ExitStatusException; @@ -53,14 +50,13 @@ class TestNgOperationTest { } @Test - @EnabledOnOs(OS.LINUX) void testCheckAllParameters() throws IOException { var args = Files.readAllLines(Paths.get("src", "test", "resources", "testng-args.txt")); assertThat(args).isNotEmpty(); var params = new TestNgOperation() - .fromProject(new BaseProjectBlueprint(new File("examples"), "com.example", "examples", "Examples")) + .fromProject(new BaseProjectBlueprint(new File("examples"), "com.example", "Examples")) .alwaysRunListeners(true) .dataProviderThreadCount(1) .dependencyInjectorFactory("injectorfactory") @@ -101,17 +97,15 @@ class TestNgOperationTest { .xmlPathInJar("jarPath") .executeConstructProcessCommandList(); - try (var softly = new AutoCloseableSoftAssertions()) { - for (var p : args) { - var found = false; - for (var a : params) { - if (a.startsWith(p)) { - found = true; - break; - } + for (var p : args) { + var found = false; + for (var a : params) { + if (a.startsWith(p)) { + found = true; + break; } - softly.assertThat(found).as(p + " not found.").isTrue(); } + assertThat(found).as(p + " not found.").isTrue(); } } @@ -146,16 +140,8 @@ class TestNgOperationTest { @Test void testDirectory() { - var foo = new File("FOO"); - var op = new TestNgOperation().directory(FOO); - assertThat(op.options().get("-d")).as("as string").isEqualTo(FOO); - - op = new TestNgOperation().directory(foo); - assertThat(op.options().get("-d")).as("as file").isEqualTo(foo.getAbsolutePath()); - - op = new TestNgOperation().directory(foo.toPath()); - assertThat(op.options().get("-d")).as("as path").isEqualTo(foo.getAbsolutePath()); + assertThat(op.options().get("-d")).isEqualTo(FOO); } @Test @@ -415,28 +401,11 @@ class TestNgOperationTest { @Test void testSourceDir() { - var foo = new File(FOO); - var bar = new File(BAR); - - var foobar = String.format("%s;%s", FOO, BAR); var op = new TestNgOperation().sourceDir(FOO, BAR); - assertThat(op.options().get("-sourcedir")).as("String...").isEqualTo(foobar); + assertThat(op.options().get("-sourcedir")).isEqualTo(String.format("%s;%s", FOO, BAR)); op = new TestNgOperation().sourceDir(List.of(FOO, BAR)); - assertThat(op.options().get("-sourcedir")).as("List(String...)").isEqualTo(foobar); - - foobar = String.format("%s;%s", foo.getAbsolutePath(), bar.getAbsolutePath()); - op = new TestNgOperation().sourceDir(foo, bar); - assertThat(op.options().get("-sourcedir")).as("File...").isEqualTo(foobar); - - op = new TestNgOperation().sourceDirFiles(List.of(foo, bar)); - assertThat(op.options().get("-sourcedir")).as("List(String...)").isEqualTo(foobar); - - op = new TestNgOperation().sourceDir(foo.toPath(), bar.toPath()); - assertThat(op.options().get("-sourcedir")).as("Path...").isEqualTo(foobar); - - op = new TestNgOperation().sourceDirPaths(List.of(foo.toPath(), bar.toPath())); - assertThat(op.options().get("-sourcedir")).as("List(Path...)").isEqualTo(foobar); + assertThat(op.options().get("-sourcedir")).as("as list").isEqualTo(String.format("%s;%s", FOO, BAR)); } @Test @@ -510,14 +479,7 @@ class TestNgOperationTest { @Test void testXmlPathInJar() { - var foo = new File(FOO); var op = new TestNgOperation().xmlPathInJar(FOO); - assertThat(op.options().get("-xmlpathinjar")).as("as string").isEqualTo(FOO); - - op = new TestNgOperation().xmlPathInJar(foo); - assertThat(op.options().get("-xmlpathinjar")).as("as file").isEqualTo(foo.getAbsolutePath()); - - op = new TestNgOperation().xmlPathInJar(foo.toPath()); - assertThat(op.options().get("-xmlpathinjar")).as("as path").isEqualTo(foo.getAbsolutePath()); + assertThat(op.options().get("-xmlpathinjar")).isEqualTo(FOO); } }