2017-10-16 128 views
1

咖啡 - 我已經創造了咖啡的自定義測試運行,它看起來像這樣如何聲明路徑的自定義測試運行

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

回答

0

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

0

小時的努力後,終於想通了這一點。這個組合得到它的工作:

卸載當前的應用程序。 通過單擊運行 - >編輯配置並刪除整個儀器測試配置,然後重新開始,刪除運行區域中的所有測試配置。這裏是一個圖像:

enter image description here