Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Trying to test an Android module in MultiDex app, com.android.test.runner.MultiDexTestRunner is not recognized

Does someone have any idea why i can not use the MultiDexTestRunner ?

Instrumentation runner class not specified

my build.gradle contains :

android {
    ...
    defaultConfig {
        ...
        multiDexEnabled true

        testInstrumentationRunner 'com.android.test.runner.MultiDexTestRunner'
    }

dependencies {
...
    // Testing-only dependencies
    androidTestCompile 'com.android.support.test:runner:0.4.1'
    androidTestCompile 'com.android.support.test:rules:0.4.1'
    androidTestCompile 'junit:junit:4.12'

Gradle's Android plugin is version 2.0.0-alpha2 (com.android.tools.build:gradle:2.0.0-alpha2)

//Runs all unit tests.
@RunWith(Suite.class)
@Suite.SuiteClasses({ACLTest.class})
public class UnitTestSuite {

    public UnitTestSuite() {}
}

Test class :

@RunWith(AndroidJUnit4.class)
@MediumTest
public class ACLTest {

    static Context context;

    public ACLTest() {
    }

    @BeforeClass
    public static void setUpBeforeClass() {
        ...
        context = InstrumentationRegistry.getTargetContext();
    }

    @Before
    public void setUpBeforeTest() throws Exception {
      ...
    }


    @After
    public void tearDown() throws Exception {
        ...
    }

    @Test
    public void aAGetInstance() throws Exception {
        ...
    }
}
like image 973
Nelson Melina Avatar asked Jan 17 '26 20:01

Nelson Melina


1 Answers

I solved my problem by implementing an extension to android.support.test.runner.AndroidJUnitRunner and override onCreate

public class MultiDexAndroidJUnitRunner extends AndroidJUnitRunner {
    @Override
    public void onCreate(Bundle arguments) {
        //To make it work on MultiDex environment.
        //https://plus.google.com/+OleksandrKucherenko/posts/i7qZdVEy3Ue
        MultiDex.install(getTargetContext());

        super.onCreate(arguments);
    }
}
like image 74
Nelson Melina Avatar answered Jan 20 '26 21:01

Nelson Melina



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!