【问题标题】:Android Studio 2.3 doesn't have Test Instrumentation specifier in UIAndroid Studio 2.3 在 UI 中没有测试仪器说明符
【发布时间】:2017-07-26 06:46:32
【问题描述】:

更新到 Android Studio 2.3 后,当我尝试运行一些 espresso 测试时,我收到以下错误:

测试运行失败:找不到仪器信息:ComponentInfo{com.example.android/android.test.InstrumentationTestRunner} 空测试套件。

这在过去很容易解决,在运行配置中我可以指定我自己的InstrumentationRunner。现在我似乎找不到这个选项,所以我现在无法真正指定我的跑步者类。

请注意,我的构建 gradle 确实包含

defaultConfig {
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    resConfigs "en", "es"
}

【问题讨论】:

标签: android testing automation automated-tests android-espresso


【解决方案1】:

我今天早上遇到了这个问题。我删除了旧的运行配置(在您通过build.gradle 指定新运行器之前创建的配置)。我重新运行了测试,Android Studio 选择了新的运行器。

【讨论】:

    【解决方案2】:

    在 Android Studio 2.3 上,此功能不可用,因为这是在 Studio 的早期版本中指定 Instrumentation Runner 包/类的可选选项。但是 Android 2.3 足够聪明,可以从你的 build.gradle 文件中选择它,前提是你已经在那里定义了 Instrumentation 包运行器。

    【讨论】:

    • 显然它不够聪明,或者我做错了什么。因为它没有从我的build.gradle
    • 在'project'文件夹下的build.gradle文件中定义包运行器,如下所示:defaultConfig { def testRunnerPackage = "com.app.test.espresso.InstrumentationTestRunner" } 确保输入正确的包名字。
    【解决方案3】:

    以下设置解决了这个问题

    productFlavors {
            doTheTests {
                minSdkVersion 18
                testInstrumentationRunner "com.company.app.test.TestRunner"
                if (System.getenv('CONTINUOUS_INTEGRATION').equals("true")) {
                    testInstrumentationRunnerArguments(package: "com.company.app.test")
                }
            }
        } 
    

    因为Android Studio不允许testInstrumentationRunnerArguments但是通过终端执行测试确实需要它!

    显然在终端/CI系统上,设置一个环境变量,如: export CONTINUOUS_INTEGRATION=true

    【讨论】:

    • 我尝试了您的解决方案,但收到以下错误Error:(282, 0) ProductFlavor names cannot start with 'test'
    • @AdrianOlar 请改名!编辑了我的答案
    【解决方案4】:

    对我有什么帮助 - 从命令行开始测试然后同步项目。

    【讨论】:

      猜你喜欢
      • 2013-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-28
      • 2016-05-27
      • 2017-03-30
      • 1970-01-01
      相关资源
      最近更新 更多