【问题标题】:Android Espresso testing 'Cannot resolve symbol 'InstrumentationRegistry''Android Espresso 测试'无法解析符号'InstrumentationRegistry''
【发布时间】:2016-03-28 12:27:18
【问题描述】:

我正在尝试导入

 import android.support.test.InstrumentationRegistry;

我的 build.gradle 文件

androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
androidTestCompile 'com.android.support.test:runner:0.2'
androidTestCompile 'com.android.support.test:rules:0.2'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'

在默认配置中:

defaultConfig {
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

这里有我想念的图书馆吗?我正在尝试导入 InstrumentationRegistry 但它无法识别它!

【问题讨论】:

标签: android unit-testing junit android-espresso


【解决方案1】:

检查您使用哪种测试。

InstrumentationRegistry 用于仪器测试 使用模拟器或设备,它们被放置在 src/androidTest 并使用配置 androidTestCompile
如果您从文件夹 src/test 为 JVM 使用 本地单元测试,您应该使用 配置 testCompile

testImplementation 'com.android.support.test:runner:1.0.2'

之后您可以导入 InstrumentationRegistry,但您会在运行时遇到其他错误。

【讨论】:

  • 同意,很好的答案!上帝保佑你!)我已将 androidTestCompile 更改为 testCompile 和 InstrumentationRegistry 已解决,
【解决方案2】:

试试

编译 'com.android.support.test:runner:0.2'

而不是

testCompile 'com.android.support.test:runner:0.2'

【讨论】:

  • 为我工作!谢谢
  • 使用implementation 因为compile 已过时
【解决方案3】:

看来,com.android.support.test 最近被排除在其他一些软件包之外(不知道是哪一个),这也导致 android.support.test.InstrumentationRegistry 未知;不从com.android.support.test:runner 中排除它为我解决了这个问题。

androidTestImplementation ("com.android.support.test:runner:1.0.2") {
    // exclude group: "com.android.support.test"
    exclude group: "com.android.support"
}

基本上,androidTestImplementation 需要包含一次com.android.support.test

【讨论】:

    【解决方案4】:

    另一种选择 - 您还可以在 InstrumentedRegistry 类所在的位置添加 androidx.test:monitor 依赖项。

    androidTestImplementation 'androidx.test:monitor:x.y.z'

    【讨论】:

      猜你喜欢
      • 2015-11-17
      • 2016-09-29
      • 2023-04-06
      • 1970-01-01
      • 2021-03-26
      • 1970-01-01
      • 1970-01-01
      • 2022-08-02
      • 1970-01-01
      相关资源
      最近更新 更多