咖啡 - 我已经创造了咖啡的自定义测试运行,它看起来像这样如何声明路径的自定义测试运行
问题描述:
:咖啡 - 我已经创造了咖啡的自定义测试运行,它看起来像这样如何声明路径的自定义测试运行
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>
答
Please again note my custom test runner is located here: androidTest-->java-->com-->mobile-->myapp-->base-->MyRunner.java
然后testInstrumentationRunner
是错误的。该路径必须匹配文件
testInstrumentationRunner "com.mobile.myapp.base.MyRunner"
的位置应该这样做
它是。你是否认为该文件的路径是正确的? – Blackbelt
不,我不确定如何把文件的路径。但该文件位于:androidTest - > java - > com - > mobile - > myapp - > base - > MyRunner.java。那么我怎么能告诉gradle它在哪里? – j2emanue
那么它应该是'com.mobile.myapp.base.MyRunner' – Blackbelt