我正在测试我的MVP Android应用程序,我不能在我的系统上运行Robobelectric单元测试。任何使用机器人电气的测试都是无反应的,永远挂起。
例如,以下测试将永远运行:
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只是在任何机器人电气测试中无限期地显示一个旋转图标。在终端中运行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
Android:2.0.0-rc2
JDK:1.8.0_40
Android:23
分级工具:2.0.0-rc2
机器人电气:3.1-SNAPSHOT
梯度:2.10
我完全不知所措。没有来自Roboelectric的调试输出,它说出了一些问题。任何帮助都将不胜感激。
发布于 2016-04-12 13:05:49
事实证明,这个https://github.com/frogermcs/AndroidDevMetrics gradle插件与Roboelectric相冲突。
发布于 2016-08-31 13:14:26
对我来说,问题是AndroidDevMetrics。如果禁用activiyMetrics,它可以正常工作。
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);
}https://stackoverflow.com/questions/36479391
复制相似问题