Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 机器人电气单元测试无响应_Android_Unit Testing_Android Studio_Android Gradle Plugin_Robolectric - Fatal编程技术网

Android 机器人电气单元测试无响应

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

我正在对MVP Android应用程序进行单元测试,无法在我的系统上运行RoboElectric单元测试。任何使用Roboelectric的测试都是无响应的,并且永远挂起

例如,以下测试将永远运行:

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,方法是在它周围写一个包装,并在我的测试中注入一个无操作版本。