Android Espresso不能与Multidex一起使用,“没有找到测试”

我的Espresso测试正在运行,直到我不得不支持multidex.

我的build.gradle,我有

minSdkVersion 14
targetSdkVersion 23
multiDexEnabled = true

testInstrumentationRunner "com.android.test.runner.MultiDexTestRunner"


androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.2.1'
androidTestCompile 'com.android.support.test:runner:0.4.1'
androidTestCompile 'com.android.support.test:rules:0.4.1'

dexOptions {
        jumboMode true
        javaMaxHeapSize "4g"
        incremental true
    }

Test1AuthenticationEspressoTest

@RunWith(AndroidJUnit4.class)
@SmallTest
public class Test1AuthenticationEspressoTest {
    @Rule
    public ActivityTestRule<WelcomeActivity> mActivityRule = new  ActivityTestRule(WelcomeActivity.class);

}

这是我得到的错误

junit.framework.AssertionFailedError: No tests found in
com.livestrong.tracker.test.Test1AuthenticationEspressoTest

任何帮助将不胜感激.任何一个都有espresso与multidex一起工作?

最佳答案
我有同样的问题,原来你需要构建一个自定义的运行程序,使MultiDex从AndroidJUnitRunner扩展.然后,您需要将该运行程序设置为build.gradle中的testInstrumentationRunner,并将其作为运行配置中的运行程序.没有必要修改测试类(保持@RunWith(AndroidJunit4.class)).

这是一个一步一步的做法:

>为您的自定义转轮创建一个类:

package com.bla.bla.bla;  // your package

import android.os.Bundle;
import android.support.multidex.MultiDex;
import android.support.test.runner.AndroidJUnitRunner;

public class CustomTestRunner extends AndroidJUnitRunner
{
    @Override
    public void onCreate(Bundle arguments)
    {
        MultiDex.install(getTargetContext());
        super.onCreate(arguments);
    }
}

>在您的build.gradle中,将跑步者设置为您的自定义赛跑者:

android {
    // ...
    defaultConfig {
        // ...
        testInstrumentationRunner "com.bla.bla.bla.CustomTestRunner"
    }
}

>在你的运行配置,make sure the instrumentation runner is also set to the same runner.

使用上述方法,我可以在我们的多重启用应用程序上运行Espresso测试.

我应该注意到关于这个话题的许多其他帖子,建议将你的跑步者设置为com.android.test.runner.MultiDexTestRunner,并在你的构建中解析com.android.support:multidex-instrumentation:1.0.1中的一些依赖项. gradle这个.该解决方案似乎不再是这种情况,并且不符合1.5.0的要求.如果你有任何东西设置,那么它会阻止上述的工作.有关更多信息,请参阅this stack overflow post中的评论.

转载注明原文:Android Espresso不能与Multidex一起使用,“没有找到测试” - 代码日志