j2e*_*nue 6 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);
}
}
Run Code Online (Sandbox Code Playgroud)
我已将类放在 androidTest 文件夹中。这可以吗 ?
现在我转到 gradle 文件来更新测试运行程序,然后输入:
testInstrumentationRunner "com.mobile.myapp.base.MyRunner"
Run Code Online (Sandbox Code Playgroud)
(这个路径可以吗?记得我把它放在 androidTest 文件夹中)。
我的一个测试类结构如下所示:
@RunWith(AndroidJUnit4.class)
public class AuthenticationActivityTest {
//....
@Test
public void signupWithFacebook() {//...}
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行测试时,android studio 说它找不到测试运行器。这是我得到的确切错误:
Test running failed: Unable to find instrumentation info for:
ComponentInfo{com.mobile.myapp.labs.test/android.support.test.runner.AndroidJUnitRunner}
Run Code Online (Sandbox Code Playgroud)
请再次注意我的自定义测试运行器位于: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();
}
}
Run Code Online (Sandbox Code Playgroud)
当我检查生成的 android manifest 时,我看到了这个:
<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>
Run Code Online (Sandbox Code Playgroud)
\n\n\n请再次注意我的自定义测试运行程序位于此处:\n androidTest-->java-->com-->mobile-->myapp-->base-->MyRun\xe2\x80\x8c\xe2\x80\x8bner .java
\n
然后testInstrumentationRunner是错误的。路径必须与文件的位置匹配
testInstrumentationRunner "com.mobile.myapp.base.MyRunner"
应该这样做
\n| 归档时间: |
|
| 查看次数: |
2987 次 |
| 最近记录: |