android - espresso - 如何为自定义测试运行程序声明路径

标签 android android-studio android-espresso

我为 espresso 创建了一个自定义测试运行器,它看起来像这样:

    public class MyRunner extends AndroidJUnitRunner {
  @Override
  public Application newApplication(ClassLoader cl, String className, Context context)
      throws Exception {
    return super.newApplication(cl, MyCustomEspressoApplication.class.getName(), context);
  }
}

我已将类放在 androidTest 文件夹中。可以吗?

现在我去 gradle 文件更新测试运行器,我把这个:

testInstrumentationRunner "com.mobile.myapp.base.MyRunner"

(这个路径可以吗?记得我把它放在 androidTest 文件夹中)。

我的一个测试类结构如下所示:

    @RunWith(AndroidJUnit4.class)

public class AuthenticationActivityTest {
//....

@Test
   public void signupWithFacebook() {//...}
}

但是当我运行测试时,android studio 说它找不到测试运行程序。这是我得到的确切错误:

   Test running failed: Unable to find instrumentation info for:
 ComponentInfo{com.mobile.myapp.labs.test/android.support.test.runner.AndroidJUnitRunner}

请再次注意我的自定义测试运行程序位于此处:androidTest-->java-->com-->mobile-->myapp-->base-->MyRun‌ ner.java

更新:下面是我正在尝试使用的自定义测试运行器:

    package com.mobile.myapp.base;

import android.support.test.runner.AndroidJUnitRunner;

import com.squareup.rx2.idler.Rx2Idler;

import io.reactivex.plugins.RxJavaPlugins;



public class MyRunner extends AndroidJUnitRunner {
    @Override public void onStart() {
        RxJavaPlugins.setInitComputationSchedulerHandler(
                Rx2Idler.create("RxJava 2.x Computation Scheduler"));
        // etc...

        super.onStart();
    }
}

当我检查生成的 android list 时,我看到了这个:

<instrumentation
       android:name="com.mobile.myapp.base.MyRunner"
       android:functionalTest="false"
       android:handleProfiling="false"
       android:label="Tests for com.mobile.myapp.labs"
       android:targetPackage="com.mobile.myapp.labs" />

   <application>
       <uses-library android:name="android.test.runner" />
   </application>

最佳答案

经过数小时的努力,终于弄明白了。这种组合让它发挥作用:

卸载当前应用程序。 单击运行-->编辑配置并删除整个仪器测试配置,然后重新开始,删除运行区域中的所有测试配置。这是一张图片:

enter image description here

关于android - espresso - 如何为自定义测试运行程序声明路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46766996/

相关文章:

android - 检查是否选择了回收站 View 中的项目

android - 如何在 EditText 上添加图像

android - 应用程序在odex而不是oat中编译

android - 使用 Android Studio 调试 C++ 库

android - 错误 : Program type already present: androidx. 核心.R

android-studio - 我的Android Studio gradle有什么问题?

android - 运行 Espresso 测试时的 java.lang.NoClassDefFoundError : android. databinding.DataBinderMapperImpl

java - 从数据库获取点到 map android

c# - 套接字纯文本响应中断

android - Android Studio 中的 Espresso 和 NoClassDefFoundError