diff --git a/README.md b/README.md index 5c547e3..66fd65a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,5 @@ # [bld](https://rife2.com/bld) Extension to Run Tests with [TestNG](https://testng.org/) - [![License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Java](https://img.shields.io/badge/java-17%2B-blue)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) [![bld](https://img.shields.io/badge/1.9.0-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) @@ -13,29 +12,11 @@ To install, please refer to the [extensions documentation](https://github.com/ri To run the tests with TestNG, add the following to your build file: ```java -@BuildCommand(summary = "Tests the project with TestNG") -public void testng() throws Exception { - new TestNgOperation() - .fromProject(this) - .packages("com.example") - .execute(); -} -``` - -```console -./bld compile testng -``` - -You could also override the default `test` command: - -```java -@BuildCommand(summary = "Tests the project with TestNG") -public void test throws Exception { - new TestNgOperation() - .fromProject(this) - .suites("src/test/resources/testng.xml") - .verbose(2) - .execute(); +@Override +public TestOperation testOperation() { + return new TestNgOperation() + .fromProject(this) + .packages("com.example"); } ``` diff --git a/examples/README.md b/examples/README.md index 8fdec70..696fcb2 100644 --- a/examples/README.md +++ b/examples/README.md @@ -3,3 +3,9 @@ Compile and Run Tests with TestNG ```console ./bld compile test ``` + +Compile and Generate JaCoCo Reports + +```console +./bld compile jacoco +``` diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties index dc50e13..d424f97 100644 --- a/examples/lib/bld/bld-wrapper.properties +++ b/examples/lib/bld/bld-wrapper.properties @@ -1,6 +1,7 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extensions=com.uwyn.rife2:bld-testng:0.9.4 +bld.extensions=com.uwyn.rife2:bld-testng:0.9.5 +bld.extension.jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.5 bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= bld.sourceDirectories= diff --git a/examples/src/bld/java/com/example/ExamplesBuild.java b/examples/src/bld/java/com/example/ExamplesBuild.java index ab35ed3..a296562 100644 --- a/examples/src/bld/java/com/example/ExamplesBuild.java +++ b/examples/src/bld/java/com/example/ExamplesBuild.java @@ -2,8 +2,11 @@ import rife.bld.BaseProject; import rife.bld.BuildCommand; +import rife.bld.extension.JacocoReportOperation; import rife.bld.extension.TestNgOperation; +import rife.bld.operations.TestOperation; +import java.io.IOException; import java.util.List; import static rife.bld.dependencies.Repository.MAVEN_CENTRAL; @@ -13,20 +16,29 @@ * Example build. * * */ public class ExamplesBuild extends BaseProject { + @Override + public TestOperation testOperation() { + return new TestNgOperation() + .fromProject(this) + .packages("com.example"); + } + public ExamplesBuild() { pkg = "com.example"; name = "Examples"; version = version(0, 1, 0); + javaRelease = 17; downloadSources = true; autoDownloadPurge = true; repositories = List.of(MAVEN_CENTRAL); - + scope(test).include(dependency("org.testng", "testng", version(7, 9, 0))); } @@ -34,11 +46,10 @@ public static void main(String[] args) { new ExamplesBuild().start(args); } - @BuildCommand(summary = "Tests the project with TestNG") - public void test() throws Exception { - new TestNgOperation() + @BuildCommand(summary = "Generates Jacoco Reports") + public void jacoco() throws IOException { + new JacocoReportOperation() .fromProject(this) - .packages("com.example") .execute(); } } diff --git a/src/bld/java/rife/bld/extension/TestNgOperationBuild.java b/src/bld/java/rife/bld/extension/TestNgOperationBuild.java index fbcc48b..68b3d6c 100644 --- a/src/bld/java/rife/bld/extension/TestNgOperationBuild.java +++ b/src/bld/java/rife/bld/extension/TestNgOperationBuild.java @@ -34,7 +34,7 @@ public class TestNgOperationBuild extends Project { public TestNgOperationBuild() { pkg = "rife.bld.extension"; name = "bld-testng"; - version = version(0, 9, 4); + version = version(0, 9, 5); javaRelease = 17; downloadSources = true; @@ -76,7 +76,7 @@ public TestNgOperationBuild() { .license( new PublishLicense() .name("The Apache License, Version 2.0") - .url("http://www.apache.org/licenses/LICENSE-2.0.txt") + .url("https://www.apache.org/licenses/LICENSE-2.0.txt") ) .scm( new PublishScm() diff --git a/src/main/java/rife/bld/extension/TestNgOperation.java b/src/main/java/rife/bld/extension/TestNgOperation.java index 33c15d5..2fef66a 100644 --- a/src/main/java/rife/bld/extension/TestNgOperation.java +++ b/src/main/java/rife/bld/extension/TestNgOperation.java @@ -17,7 +17,7 @@ package rife.bld.extension; import rife.bld.BaseProject; -import rife.bld.operations.AbstractProcessOperation; +import rife.bld.operations.TestOperation; import java.io.File; import java.io.IOException; @@ -37,7 +37,7 @@ * @since 1.0 */ @SuppressWarnings("PMD.TestClassWithoutTestCases") -public class TestNgOperation extends AbstractProcessOperation { +public class TestNgOperation extends TestOperation> { private static final Logger LOGGER = Logger.getLogger(TestNgOperation.class.getName()); /** * The run options. @@ -151,11 +151,12 @@ protected List executeConstructProcessCommandList() { } if (!options.containsKey("-d")) { - options.put("d", Path.of(project.buildDirectory().getPath(), "test-output").toString()); + options.put("-d", Path.of(project.buildDirectory().getPath(), "test-output").toString()); } final List args = new ArrayList<>(); args.add(javaTool()); + args.addAll(this.javaOptions()); args.add("-cp"); if (testClasspath.isEmpty()) {