Bug P3
Status Update
Comments
fe...@google.com <fe...@google.com> #2
Thanks for the issue. We've already fixed this for the upcoming Navigation 2.2.0-rc03.
vi...@google.com <vi...@google.com> #4
Please provide the information as requested in comment #3 , for us to further investigate this issue.
fe...@google.com <fe...@google.com> #5
Sorry, but I filed this bug months ago, I don't recall the details, but I guess it's just a matter of adding a test on Android git (CTS / frameworktests, etc...) and run it with atest...
vi...@google.com <vi...@google.com> #6
Annotation Team,
Could you please check this issue and provide your inputs.
Could you please check this issue and provide your inputs.
ri...@google.com <ri...@google.com> #7
I believe this is caused by AndroidJUnit4 not printing out the JUnit4 exception about broken test classes: b/137121326 , which should be fixed now.
as...@google.com <as...@google.com> #8
Please verify this is fixed
ae...@google.com <ae...@google.com> #9
This bug has not been updated in over a year. Please reopen if this is still an issue or requires addition inspection.
Description
java.lang.RuntimeException: Delegate runner 'androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner' for AndroidJUnit4 could not be loaded.
Long story short, the problem was caused because JUnit3's setup was protected. You can easily reproduce it with the following test case:
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import androidx.test.ext.junit.runners.AndroidJUnit4;
@RunWith(AndroidJUnit4.class)
public class YUNoClearTest {
@Before
public void preOk() {
System.out.println("I'M PUBLIC, THEREFORE I EXIST!");
}
@Before
protected void protectedByLaw() {
System.out.println("DO YOU FEEL LUCKY, PUNK?");
}
@Test
public void eureka() {
System.out.println("FU!!");
}
}
It will fail with:
STACKTRACE:
java.lang.RuntimeException: Delegate runner 'androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner' for AndroidJUnit4 could not be loaded.
at androidx.test.ext.junit.runners.AndroidJUnit4.throwInitializationError(AndroidJUnit4.java:92)
at androidx.test.ext.junit.runners.AndroidJUnit4.loadRunner(AndroidJUnit4.java:82)
at androidx.test.ext.junit.runners.AndroidJUnit4.loadRunner(AndroidJUnit4.java:51)
at androidx.test.ext.junit.runners.AndroidJUnit4.<init>(AndroidJUnit4.java:46)
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
at androidx.test.internal.runner.junit4.AndroidAnnotatedBuilder.runnerForClass(AndroidAnnotatedBuilder.java:63)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
at androidx.test.internal.runner.AndroidRunnerBuilder.runnerForClass(AndroidRunnerBuilder.java:153)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at androidx.test.internal.runner.TestLoader.doCreateRunner(TestLoader.java:73)
at androidx.test.internal.runner.TestLoader.getRunnersFor(TestLoader.java:104)
at androidx.test.internal.runner.TestRequestBuilder.build(TestRequestBuilder.java:793)
at androidx.test.runner.AndroidJUnitRunner.buildRequest(AndroidJUnitRunner.java:547)
at androidx.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:390)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2189)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at androidx.test.ext.junit.runners.AndroidJUnit4.loadRunner(AndroidJUnit4.java:72)
... 17 more
Caused by: org.junit.runners.model.InitializationError
at org.junit.runners.ParentRunner.validate(ParentRunner.java:418)
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:84)
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:65)
at androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner.<init>(AndroidJUnit4ClassRunner.java:43)
at androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner.<init>(AndroidJUnit4ClassRunner.java:48)
... 20 more
Then make protectedByLaw() public, and it will pass...