From 19909c8fcd3f0d4b4d55b48c18159a5acf6e2df4 Mon Sep 17 00:00:00 2001 From: egidijus-kuzma Date: Thu, 8 Sep 2022 19:44:00 +0300 Subject: [PATCH 1/2] Fixing inherited test support --- .../junit5/inheritance/TestExecutor.kt | 14 ++++++++++++++ .../junit5/inheritance/TestImplementation.java | 9 +++++++++ .../de/mannodermaus/junit5/AndroidJUnit5Builder.kt | 11 +++++++++++ 3 files changed, 34 insertions(+) create mode 100644 instrumentation/core/src/androidTest/java/de/mannodermaus/junit5/inheritance/TestExecutor.kt create mode 100644 instrumentation/core/src/androidTest/java/de/mannodermaus/junit5/inheritance/TestImplementation.java diff --git a/instrumentation/core/src/androidTest/java/de/mannodermaus/junit5/inheritance/TestExecutor.kt b/instrumentation/core/src/androidTest/java/de/mannodermaus/junit5/inheritance/TestExecutor.kt new file mode 100644 index 00000000..bc484009 --- /dev/null +++ b/instrumentation/core/src/androidTest/java/de/mannodermaus/junit5/inheritance/TestExecutor.kt @@ -0,0 +1,14 @@ +package de.mannodermaus.junit5.inheritance + +import org.junit.jupiter.api.Assertions.assertNotNull +import org.junit.jupiter.api.Test + +abstract class TestExecutor { + + @Test + fun executeTest() { + assertNotNull(getFilename()) + } + + abstract fun getFilename(): String? +} \ No newline at end of file diff --git a/instrumentation/core/src/androidTest/java/de/mannodermaus/junit5/inheritance/TestImplementation.java b/instrumentation/core/src/androidTest/java/de/mannodermaus/junit5/inheritance/TestImplementation.java new file mode 100644 index 00000000..18a0c1b8 --- /dev/null +++ b/instrumentation/core/src/androidTest/java/de/mannodermaus/junit5/inheritance/TestImplementation.java @@ -0,0 +1,9 @@ +package de.mannodermaus.junit5.inheritance; + +public class TestImplementation extends TestExecutor { + + @Override + public String getFilename() { + return "test"; + } +} diff --git a/instrumentation/runner/src/main/kotlin/de/mannodermaus/junit5/AndroidJUnit5Builder.kt b/instrumentation/runner/src/main/kotlin/de/mannodermaus/junit5/AndroidJUnit5Builder.kt index 4c2eb1e6..b4edeb44 100644 --- a/instrumentation/runner/src/main/kotlin/de/mannodermaus/junit5/AndroidJUnit5Builder.kt +++ b/instrumentation/runner/src/main/kotlin/de/mannodermaus/junit5/AndroidJUnit5Builder.kt @@ -65,6 +65,17 @@ public class AndroidJUnit5Builder : RunnerBuilder() { } if (testClass.jupiterTestMethods().isEmpty()) { + + var C: Class<*>? = testClass + while (C != null) { + + C = C.superclass + + if(!C.jupiterTestMethods().isEmpty()) { + return createJUnit5Runner(testClass) + } + } + return null } From 9f668b4babd9337930a3c75869476fdedc6b2328 Mon Sep 17 00:00:00 2001 From: egidijus-kuzma Date: Thu, 8 Sep 2022 20:52:23 +0300 Subject: [PATCH 2/2] AndroidJUnit5Builder.kt Fixing NPE --- .../kotlin/de/mannodermaus/junit5/AndroidJUnit5Builder.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/instrumentation/runner/src/main/kotlin/de/mannodermaus/junit5/AndroidJUnit5Builder.kt b/instrumentation/runner/src/main/kotlin/de/mannodermaus/junit5/AndroidJUnit5Builder.kt index b4edeb44..cc151fb3 100644 --- a/instrumentation/runner/src/main/kotlin/de/mannodermaus/junit5/AndroidJUnit5Builder.kt +++ b/instrumentation/runner/src/main/kotlin/de/mannodermaus/junit5/AndroidJUnit5Builder.kt @@ -71,8 +71,10 @@ public class AndroidJUnit5Builder : RunnerBuilder() { C = C.superclass - if(!C.jupiterTestMethods().isEmpty()) { - return createJUnit5Runner(testClass) + if(C != null) { + if(!C.jupiterTestMethods().isEmpty()) { + return createJUnit5Runner(testClass) + } } }