Say*_*san 18 android android-espresso android-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
}
Run Code Online (Sandbox Code Playgroud)
@RunWith(AndroidJUnit4.class)
@SmallTest
public class Test1AuthenticationEspressoTest {
@Rule
public ActivityTestRule<WelcomeActivity> mActivityRule = new ActivityTestRule(WelcomeActivity.class);
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误
junit.framework.AssertionFailedError:在com.livestrong.tracker.test.Test1AuthenticationEspressoTest中找不到测试
任何帮助将不胜感激.有人使用浓缩咖啡吗?
小智 40
我遇到了同样的问题,事实证明你需要构建一个支持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);
}
}
Run Code Online (Sandbox Code Playgroud)在build.gradle中,将运行器设置为自定义运行器:
android {
// ...
defaultConfig {
// ...
testInstrumentationRunner "com.bla.bla.bla.CustomTestRunner"
}
}
Run Code Online (Sandbox Code Playgroud)在运行配置中,确保检测运行器也设置为同一个运行器..注意: Android Studio 3.x以及某些先前版本不需要此步骤.此选项不再存在.
使用上面的代码,我能够在支持多人dex的应用程序上运行Espresso测试.
我应该注意网上关于这个主题的许多其他帖子,建议设置你的跑步者com.android.test.runner.MultiDexTestRunner并在build.gradle中排除一些依赖关系com.android.support:multidex-instrumentation:1.0.1.该解决方案似乎不再是这种情况,并且不适用于gradle 1.5.0.如果你有任何设置的东西,那么它将阻止上述工作.有关更多信息,请参阅此堆栈溢出帖子中的注释.
| 归档时间: |
|
| 查看次数: |
4318 次 |
| 最近记录: |