Android 机器人电气单元测试无响应
我正在对MVP Android应用程序进行单元测试,无法在我的系统上运行RoboElectric单元测试。任何使用Roboelectric的测试都是无响应的,并且永远挂起 例如,以下测试将永远运行:Android 机器人电气单元测试无响应,android,unit-testing,android-studio,android-gradle-plugin,robolectric,Android,Unit Testing,Android Studio,Android Gradle Plugin,Robolectric,我正在对MVP Android应用程序进行单元测试,无法在我的系统上运行RoboElectric单元测试。任何使用Roboelectric的测试都是无响应的,并且永远挂起 例如,以下测试将永远运行: import static com.google.common.truth.Truth.assert_; @RunWith(RobolectricGradleTestRunner.class) @Config(constants = BuildConfig.class, sdk = 23) pub
import static com.google.common.truth.Truth.assert_;
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 23)
public class FakeTest {
@Test
public void testShouldFail() {
assert_().fail("Fail!");
}
}
Android Studio只是在任何机器人电子测试中无限期地显示一个旋转图标。在终端中从gradle运行测试也会挂起,但不会显示任何指示器。
下面是我的build.gradle
测试依赖项的样子:
// Unit testing
testCompile(
'junit:junit:4.12',
'org.mockito:mockito-core:1.10.19',
'com.google.truth:truth:0.28'
)
// Roboelectric 3.1-SNAPSHOT is the latest that supports API 23
testCompile('org.robolectric:robolectric:3.1-SNAPSHOT') {
exclude group: 'commons-logging'
exclude group: 'org.apache.httpcomponents'
}
系统信息:
OSX:10.11.4
安卓工作室:2.0.0-rc2
JDK:1.8.0\u 40
Android SDK:23
渐变工具:2.0.0-rc2
机器人电气:3.1-SNAPSHOT
渐变:2.10
我完全被难住了。没有来自Roboelectric的调试输出表明出现问题。任何帮助都将不胜感激。证明此gradle插件与Roboelectric冲突。对我来说,问题是AndroidDevMetrics。如果禁用ActivityMetrics,它可以正常工作
AndroidDevMetrics.Builder androidDevMetricsBuilder =
new AndroidDevMetrics.Builder(this)
.enableActivityMetrics(!isRoboUnitTest())
.enableDagger2Metrics(true)
.showNotification(true);
AndroidDevMetrics.initWith(androidDevMetricsBuilder);
public static boolean isRoboUnitTest() {
return "robolectric".equals(Build.FINGERPRINT);
}
因此,任何测试都是悬而未决的。如果您从命令行运行它,您会看到相同的行为吗?是的。我在OP中提到了这一点。
2.0.0
现在已经发布了。另外,要小心robolectric快照。你能试试robolectric-3.0吗?@EugenMartynov我对Roboelectric 3.0也有同样的问题。如果知道哪个插件有害,那么其他插件就会被警告,我最终会在我的测试中完全禁用AndroidDevMetrics,方法是在它周围写一个包装,并在我的测试中注入一个无操作版本。