diff --git a/gradle-modules/gradle/junit-report-multi-module/build.gradle.kts b/gradle-modules/gradle/junit-report-multi-module/build.gradle.kts new file mode 100644 index 000000000000..4cb205b098d3 --- /dev/null +++ b/gradle-modules/gradle/junit-report-multi-module/build.gradle.kts @@ -0,0 +1,36 @@ +plugins { + id("java") + id("jvm-test-suite") + id("test-report-aggregation") +} + +group = "com.baeldung.gradle" +version = "1.0-SNAPSHOT" + +repositories { + mavenCentral() +} + +dependencies { + testImplementation("org.junit.jupiter:junit-jupiter:5.10.0") +} + +testing { + suites { + val test by getting(JvmTestSuite::class) { + useJUnitJupiter() + } + } +} + +reporting { + reports { + val testAggregateTestReport by existing(AggregateTestReport::class) + } +} + +dependencies { + subprojects.forEach { sub -> + testReportAggregation(project(sub.path)) + } +} \ No newline at end of file diff --git a/gradle-modules/gradle/junit-report-multi-module/modulea/build.gradle.kts b/gradle-modules/gradle/junit-report-multi-module/modulea/build.gradle.kts new file mode 100644 index 000000000000..adb226646032 --- /dev/null +++ b/gradle-modules/gradle/junit-report-multi-module/modulea/build.gradle.kts @@ -0,0 +1,16 @@ +plugins { + id("java-library") + id("jvm-test-suite") +} + +repositories { + mavenCentral() +} + +testing { + suites { + val test by getting(JvmTestSuite::class) { + useJUnitJupiter() + } + } +} diff --git a/gradle-modules/gradle/junit-report-multi-module/modulea/src/main/resources/application.properties b/gradle-modules/gradle/junit-report-multi-module/modulea/src/main/resources/application.properties new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/gradle-modules/gradle/junit-report-multi-module/modulea/src/main/resources/application.properties @@ -0,0 +1 @@ + diff --git a/gradle-modules/gradle/junit-report-multi-module/modulea/src/test/java/com/baeldung/gradle/firstmodule/ModuleATest.java b/gradle-modules/gradle/junit-report-multi-module/modulea/src/test/java/com/baeldung/gradle/firstmodule/ModuleATest.java new file mode 100644 index 000000000000..aa4ed077aa83 --- /dev/null +++ b/gradle-modules/gradle/junit-report-multi-module/modulea/src/test/java/com/baeldung/gradle/firstmodule/ModuleATest.java @@ -0,0 +1,16 @@ +package com.baeldung.gradle.firstmodule; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + +public class ModuleATest { + + @Test + void givenNumbers_whenAdd_thenCorrect() { + int sum = 2 + 3; + assertEquals(5, sum); + } +} diff --git a/gradle-modules/gradle/junit-report-multi-module/moduleb/build.gradle.kts b/gradle-modules/gradle/junit-report-multi-module/moduleb/build.gradle.kts new file mode 100644 index 000000000000..adb226646032 --- /dev/null +++ b/gradle-modules/gradle/junit-report-multi-module/moduleb/build.gradle.kts @@ -0,0 +1,16 @@ +plugins { + id("java-library") + id("jvm-test-suite") +} + +repositories { + mavenCentral() +} + +testing { + suites { + val test by getting(JvmTestSuite::class) { + useJUnitJupiter() + } + } +} diff --git a/gradle-modules/gradle/junit-report-multi-module/moduleb/src/main/resources/application.properties b/gradle-modules/gradle/junit-report-multi-module/moduleb/src/main/resources/application.properties new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/gradle-modules/gradle/junit-report-multi-module/moduleb/src/main/resources/application.properties @@ -0,0 +1 @@ + diff --git a/gradle-modules/gradle/junit-report-multi-module/moduleb/src/test/java/com/baeldung/gradle/secondmodule/ModuleBTest.java b/gradle-modules/gradle/junit-report-multi-module/moduleb/src/test/java/com/baeldung/gradle/secondmodule/ModuleBTest.java new file mode 100644 index 000000000000..f915fb268642 --- /dev/null +++ b/gradle-modules/gradle/junit-report-multi-module/moduleb/src/test/java/com/baeldung/gradle/secondmodule/ModuleBTest.java @@ -0,0 +1,13 @@ +package com.baeldung.gradle.secondmodule; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertTrue; + +public class ModuleBTest { + + @Test + void givenString_whenCheckLength_thenCorrect() { + String word = "Hello World"; + assertTrue(word.length() > 3); + } +} diff --git a/gradle-modules/gradle/junit-report-multi-module/settings.gradle.kts b/gradle-modules/gradle/junit-report-multi-module/settings.gradle.kts new file mode 100644 index 000000000000..95d0e9b5555b --- /dev/null +++ b/gradle-modules/gradle/junit-report-multi-module/settings.gradle.kts @@ -0,0 +1,2 @@ +rootProject.name = "junit-report-multi-module" +include("modulea", "moduleb") \ No newline at end of file diff --git a/gradle-modules/gradle/junit-report-single-module/build.gradle.kts b/gradle-modules/gradle/junit-report-single-module/build.gradle.kts new file mode 100644 index 000000000000..a1379699db4a --- /dev/null +++ b/gradle-modules/gradle/junit-report-single-module/build.gradle.kts @@ -0,0 +1,27 @@ +plugins { + id("java") + id("jacoco") +} + +group = "com.baeldung.gradle" +version = "1.0-SNAPSHOT" + +repositories { + mavenCentral() +} + +dependencies { + testImplementation(platform("org.junit:junit-bom:5.10.0")) + testImplementation("org.junit.jupiter:junit-jupiter") +} + +tasks.test { + useJUnitPlatform() + + reports { + html.required = true + junitXml.required = true + } + + finalizedBy(tasks.jacocoTestReport) +} \ No newline at end of file diff --git a/gradle-modules/gradle/junit-report-single-module/settings.gradle.kts b/gradle-modules/gradle/junit-report-single-module/settings.gradle.kts new file mode 100644 index 000000000000..9292a616cee0 --- /dev/null +++ b/gradle-modules/gradle/junit-report-single-module/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "junit-report-single-module" diff --git a/gradle-modules/gradle/junit-report-single-module/src/main/java/com/baeldung/gradle/example/Calculator.java b/gradle-modules/gradle/junit-report-single-module/src/main/java/com/baeldung/gradle/example/Calculator.java new file mode 100644 index 000000000000..b8fc71056ca1 --- /dev/null +++ b/gradle-modules/gradle/junit-report-single-module/src/main/java/com/baeldung/gradle/example/Calculator.java @@ -0,0 +1,23 @@ +package com.baeldung.gradle.example; + +public class Calculator { + + public int add(int a, int b) { + return a + b; + } + + public int subtract(int a, int b) { + return a - b; + } + + public int multiply(int a, int b) { + return a * b; + } + + public int divide(int a, int b) { + if (b == 0) { + throw new ArithmeticException("Division by zero is not allowed"); + } + return a / b; + } +} diff --git a/gradle-modules/gradle/junit-report-single-module/src/main/resources/application.properties b/gradle-modules/gradle/junit-report-single-module/src/main/resources/application.properties new file mode 100644 index 000000000000..8b137891791f --- /dev/null +++ b/gradle-modules/gradle/junit-report-single-module/src/main/resources/application.properties @@ -0,0 +1 @@ + diff --git a/gradle-modules/gradle/junit-report-single-module/src/test/java/com/baeldung/gradle/example/CalculatorUnitTest.java b/gradle-modules/gradle/junit-report-single-module/src/test/java/com/baeldung/gradle/example/CalculatorUnitTest.java new file mode 100644 index 000000000000..6e840ccbbf32 --- /dev/null +++ b/gradle-modules/gradle/junit-report-single-module/src/test/java/com/baeldung/gradle/example/CalculatorUnitTest.java @@ -0,0 +1,40 @@ +package com.baeldung.gradle.example; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + +public class CalculatorUnitTest { + + private Calculator calculator; + + @BeforeEach + void setUp() { + calculator = new Calculator(); + } + + @Test + void shouldAddTwoNumbers() { + int result = calculator.add(5, 3); + assertEquals(8, result); + } + + @Test + void shouldSubtractTwoNumbers() { + int result = calculator.subtract(10, 4); + assertEquals(6, result); + } + + @Test + void shouldThrowExceptionForDivisionByZero() { + assertThrows(ArithmeticException.class, () -> calculator.divide(10, 0)); + } + + @Test + void shouldMultiplyTwoNumbers() { + int result = calculator.multiply(4, 7); + assertEquals(28, result); + } +} diff --git a/gradle-modules/gradle/settings.gradle b/gradle-modules/gradle/settings.gradle index 5b7e3db6fd6c..99f36977a6f9 100644 --- a/gradle-modules/gradle/settings.gradle +++ b/gradle-modules/gradle/settings.gradle @@ -6,4 +6,6 @@ include 'greeter' include 'gradletaskdemo' include 'unused-dependencies' include 'gradle-wsdl-stubs' +include 'junit-report-single-module' +include ' junit-report-multi-module' println 'This will be executed during the initialization phase.'