Cleaned up API to match bld operations aand options APIs
This commit is contained in:
parent
994bc399d6
commit
4e44484157
7 changed files with 153 additions and 18 deletions
6
.idea/bld.xml
generated
Normal file
6
.idea/bld.xml
generated
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="BldConfiguration">
|
||||
<events />
|
||||
</component>
|
||||
</project>
|
|
@ -1,8 +1,8 @@
|
|||
bld.downloadExtensionJavadoc=false
|
||||
bld.downloadExtensionSources=true
|
||||
bld.downloadLocation=
|
||||
bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.7
|
||||
bld.extension-testng=com.uwyn.rife2:bld-testng:0.9.9
|
||||
bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.8-SNAPSHOT
|
||||
bld.extension-testng=com.uwyn.rife2:bld-testng:1.0.0-SNAPSHOT
|
||||
bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES
|
||||
bld.sourceDirectories=
|
||||
bld.version=2.0.1
|
||||
|
|
|
@ -24,10 +24,7 @@ import rife.bld.publish.PublishScm;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
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.Repository.*;
|
||||
import static rife.bld.dependencies.Scope.compile;
|
||||
import static rife.bld.dependencies.Scope.test;
|
||||
import static rife.bld.operations.JavadocOptions.DocLinkOption.NO_MISSING;
|
||||
|
@ -36,7 +33,7 @@ public class TestNgOperationBuild extends Project {
|
|||
public TestNgOperationBuild() {
|
||||
pkg = "rife.bld.extension";
|
||||
name = "bld-testng";
|
||||
version = version(0, 9, 9);
|
||||
version = version(1, 0, 0, "SNAPSHOT");
|
||||
|
||||
javaRelease = 17;
|
||||
|
||||
|
|
|
@ -118,6 +118,30 @@ public class TestNgOperation extends TestOperation<TestNgOperation, List<String>
|
|||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* The directory where the reports will be generated
|
||||
*
|
||||
* <p>Default is {@code build/test-output})</p>
|
||||
*
|
||||
* @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
|
||||
*
|
||||
* <p>Default is {@code build/test-output})</p>
|
||||
*
|
||||
* @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.
|
||||
*
|
||||
|
@ -678,10 +702,49 @@ public class TestNgOperation extends TestOperation<TestNgOperation, List<String>
|
|||
*
|
||||
* @param directory one or more directories
|
||||
* @return this operation instance
|
||||
* @see #sourceDir(String...) #sourceDir(String...)
|
||||
* @see #sourceDir(Collection)
|
||||
*/
|
||||
public TestNgOperation sourceDir(String... directory) {
|
||||
options_.put("-sourcedir", String.join(";", Arrays.stream(directory).filter(this::isNotBlank).toList()));
|
||||
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<String> directory) {
|
||||
options_.put("-sourcedir", String.join(";", directory.stream().filter(this::isNotBlank).toList()));
|
||||
return this;
|
||||
}
|
||||
|
||||
|
@ -692,11 +755,23 @@ public class TestNgOperation extends TestOperation<TestNgOperation, List<String>
|
|||
*
|
||||
* @param directory the list of directories
|
||||
* @return this operation instance
|
||||
* @see #sourceDir(String...) #sourceDir(String...)
|
||||
* @see #sourceDir(File...)
|
||||
*/
|
||||
public TestNgOperation sourceDir(Collection<String> directory) {
|
||||
options_.put("-sourcedir", String.join(";", directory.stream().filter(this::isNotBlank).toList()));
|
||||
return this;
|
||||
public TestNgOperation sourceDirFiles(Collection<File> 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<Path> directory) {
|
||||
return sourceDirFiles(directory.stream().map(Path::toFile).toList());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1031,6 +1106,30 @@ public class TestNgOperation extends TestOperation<TestNgOperation, List<String>
|
|||
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
|
||||
*/
|
||||
|
|
|
@ -22,7 +22,7 @@ package rife.bld.extension;
|
|||
* @author <a href="https://erik.thauvin.net/">Erik C. Thauvin</a>
|
||||
* @since 1.0
|
||||
*/
|
||||
@SuppressWarnings("PMD.TestClassWithoutTestCases")
|
||||
@SuppressWarnings({"PMD.TestClassWithoutTestCases", "unused"})
|
||||
class TestNgExample {
|
||||
public String getMessage() {
|
||||
return "Hello World!";
|
||||
|
|
|
@ -25,6 +25,7 @@ import org.testng.annotations.Test;
|
|||
* @author <a href="https://erik.thauvin.net/">Erik C. Thauvin</a>
|
||||
* @since 1.0
|
||||
*/
|
||||
@SuppressWarnings("unused")
|
||||
class TestNgExampleTest {
|
||||
private final TestNgExample example = new TestNgExample();
|
||||
|
||||
|
|
|
@ -140,8 +140,16 @@ class TestNgOperationTest {
|
|||
|
||||
@Test
|
||||
void testDirectory() {
|
||||
var foo = new File("FOO");
|
||||
|
||||
var op = new TestNgOperation().directory(FOO);
|
||||
assertThat(op.options().get("-d")).isEqualTo(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());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -401,11 +409,28 @@ 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")).isEqualTo(String.format("%s;%s", FOO, BAR));
|
||||
assertThat(op.options().get("-sourcedir")).as("String...").isEqualTo(foobar);
|
||||
|
||||
op = new TestNgOperation().sourceDir(List.of(FOO, BAR));
|
||||
assertThat(op.options().get("-sourcedir")).as("as list").isEqualTo(String.format("%s;%s", 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);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -479,7 +504,14 @@ class TestNgOperationTest {
|
|||
|
||||
@Test
|
||||
void testXmlPathInJar() {
|
||||
var foo = new File(FOO);
|
||||
var op = new TestNgOperation().xmlPathInJar(FOO);
|
||||
assertThat(op.options().get("-xmlpathinjar")).isEqualTo(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());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue