咖啡 - 我已经创造了咖啡的自定义测试运行,它看起来像这样如何声明路径的自定义测试运行

咖啡 - 我已经创造了咖啡的自定义测试运行,它看起来像这样如何声明路径的自定义测试运行

问题描述:

咖啡 - 我已经创造了咖啡的自定义测试运行,它看起来像这样如何声明路径的自定义测试运行

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" 

(是这条道路OK记得我把它放在androidTest文件夹?)。

和一个我的测试类的结构是这样的:

@RunWith(AndroidJUnit4.class) 

public class AuthenticationActivityTest { 
//.... 

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

但是当我运行测试机器人工作室表示,它不能找到测试运行。这里是确切的错误我得到:

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

再次请注意我的自定义测试运行位置为:androidTest - >爪哇 - > COM - >手机 - > MYAPP - >基础 - > MyRun ner.java

更新:下面是自定义的TestRunner我试图使用方法:

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清单生成的我看到这一点:

<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> 
+0

它是。你是否认为该文件的路径是正确的? – Blackbelt

+0

不,我不确定如何把文件的路径。但该文件位于:androidTest - > java - > com - > mobile - > myapp - > base - > MyRunner.java。那么我怎么能告诉gradle它在哪里? – j2emanue

+0

那么它应该是'com.mobile.myapp.base.MyRunner' – Blackbelt

Please again note my custom test runner is located here: androidTest-->java-->com-->mobile-->myapp-->base-->MyRun‌​ner.java

然后testInstrumentationRunner是错误的。该路径必须匹配文件

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

的位置应该这样做

+0

我试过这个但我仍然遇到以下错误:测试运行失败:无法找到检测信息:ComponentInfo {com.mobile.pomelo.labs.test/android.support.test.runner.AndroidJUnitRunner} – j2emanue

+0

您能打开您的测试运行器子类并复制/粘贴包吗? – Blackbelt

+0

我有。更新了我的答案以显示包裹。 – j2emanue

小时的努力后,终于想通了这一点。这个组合得到它的工作:

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

enter image description here