Android Studio導入現有單元測試“無法找到儀器信息”


Answers

就我而言,解決方案是:

  • 查看>工具Windows>構建變體
  • 選擇一個* Debug變體
Question

所以我正在嘗試我們的Android Studio並測試一個在eclipse中工作的項目。 我得到了一切編譯,應用程序將啟動很好,但我不能讓我的單元測試和工作。 我最終通過添加我的應用程序li​​b文件夾作為依賴項來編譯它們,但我不認為我的運行配置是正確的,因為每當我運行我的測試時我都會收到此錯誤

Installing <packagename>
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/<packagename>"
pkg: /data/local/tmp/<packagename>
Success


Running tests
Test running started
Test running failed: Unable to find instrumentation info for: ComponentInfo{<packagename>/android.test.InstrumentationTestRunner}
Empty test suite.

編輯:對於所有新來的人,自從我最初發布此問題以來,Android Studio的狀態發生了很大變化,但許多有用的人繼續發布他們針對此錯誤的特定解決方案。 我建議先主動排序,然後先查看最新的答案。




它接縫你沒有好的項目結構。

  1. 打開AndroidManifest.xml並檢查它有沒有

    <instrumentation android:name="android.test.InstrumentationTestRunner"
                         android:targetPackage="com.example.YourClass"
                         android:label="Tests for com.example.YourClass"/>
    

如果沒有做下一個:

  1. 將您的目錄結構重新組織為以下內容:(這是來自官方來源的推薦)
        MyProject/
              AndroidManifest.xml
              res/
                  ... (resources for main application)
              src/
                  ... (source code for main application) ...
              tests/
                  AndroidManifest.xml
                  res/
                      ... (resources for tests)
                  src/
                      ... (source code for tests)
  1. 你看到你需要有內部測試模塊。
    要在Idea IDE中創建它,請執行下一個文件 - >新模塊 - >測試模塊 。 創建後,您可以看到一個新的AndroidManifest.xml。 它裡面有儀表聲明。



在我的情況下,問題也在設備中。 其他設備工作正常。 簡單的卸載和重新安裝修復它。




這僅適用於AndroidStudio版本<2.3

在我的情況下,選擇了錯誤的儀表運行器。

我通過在測試的運行/調試配置中指定檢測運行器來修復此問題(參見下文)。 在那裡,您可以從列表中選擇一個跑步者。

您可以找到運行/調試配置: 運行 - >編輯配置...




我通過改變解決了這個問題

android.test.InstrumentationTestRunner 

com.android.test.runner.MultiDexTestRunner

在EditConfigurations - > Specific Instrumentation Runner(可選)選項卡中。

事實證明,因為我的應用程序正在使用MultiDex,我還需要將測試運行器更改為MultiDexTestRunner。

更新:

作為@dan評論,不推薦使用AndroidJUnitRunner而是使用AndroidJUnitRunner




由於這些答案都沒有幫助我,我想與任何像我一樣絕望的人分享我的解決方案。 :)

由於我使用的測試庫,我需要通過向我的Gradle構建添加multiDexEnabled true來啟用multidex支持。 我不確定我是否已經完全實現了multidex支持(自從我上次實現它以來,正確的方式已經改變了)但最終,我並沒有最終需要它並從我的構建中刪除該行修復了錯誤。 我的工作團隊在典型的Android風格中遇到了一些與啟用multidex支持相關的測試問題。




對我來說問題是這種依賴:

debugCompile 'com.android.support.test:rules:0.2'

我刪除它後,我的測試被發現並再次運行。

請注意,我沒有收到“無法找到檢測”消息,而是“未找到測試”消息。




Related