:咖啡 - 我已經創造了咖啡的自定義測試運行,它看起來像這樣如何聲明路徑的自定義測試運行
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>
它是。你是否認爲該文件的路徑是正確的? – Blackbelt
不,我不確定如何把文件的路徑。但該文件位於:androidTest - > java - > com - > mobile - > myapp - > base - > MyRunner.java。那麼我怎麼能告訴gradle它在哪裏? – j2emanue
那麼它應該是'com.mobile.myapp.base.MyRunner' – Blackbelt