2

所以我開始使用名爲MyCoolObjectTest的UnitTest。需要做一些儀器測試,我通過拖動將Android項目視圖中的課程從test目錄移動到androidTest目錄。我的單元測試用於正常工作;儀器部分除外。但現在它根本不起作用。我一直收到在Android Studio中將UnitTest轉換爲Instrumentation測試

Class not found: "com.mypkg.MyCoolObjectTest"Empty test suite. 

我一直在尋找所有的stackoverflow和官方文檔的解決方案。到目前爲止沒有運氣。有沒有人遇到類似的東西?

(如果我拖回到它的工作原理test文件夾;如果我再拖動它再次停止工作androidTest文件夾)

我記得是到文件夾設置下測試的方式。但我不記得了。

對於一些見解,我想用一些Android庫裏在我的測試,如

public String stripFormatting(String input){ 
    return Html.fromHtml(input).toString(); 
} 

這就是爲什麼我需要的儀器。

這裏是我的單元測試類的一個實例一個測試:

@RunWith(AndroidJUnit4.class) 
public class MyCoolObjectTest { 
    @Test 
    public void testJustToKnow() { 
     String actual = "<b>0</b>"; 
     String expected = "0"; 
     assertThat(stripFormatting(actual), equalTo(expected)); 
    } 
    public String stripFormatting(String input) { 
     return Html.fromHtml(input).toString(); 
    } 
} 

更新

這是一個不同的跟蹤,我得到了。如果我點擊的方法,而不是類,我得到以下跟蹤:

我剛纔點擊的方法,而不是整個班級,並得到了以下跟蹤:

11/04 13:51:16: Launching testJustToKnow() $ adb push /Users/me/StudioProjects/Myapp/app/build/outputs/apk/app-debug.apk /data/local/tmp/com.mypkg.myapp $ adb shell pm install -r "/data/local/tmp/com.mypkg.myapp" pkg: /data/local/tmp/com.mypkg.myapp Success

$ adb push /Users/me/StudioProjects/Myapp/app/build/outputs/apk/app-debug-androidTest-unaligned.apk /data/local/tmp/com.mypkg.Myapp.test $ adb shell pm install -r "/data/local/tmp/com.mypkg.myapp.test" pkg: /data/local/tmp/com.mypkg.myapp.test Success

Running tests

$ adb shell am instrument -w -r -e debug false -e class com.mypkg.myapp.utils.MyCoolObjectTest#testJustToKnow com.mypkg.myapp.test/android.test.InstrumentationTestRunner Client not ready yet..Test running started

junit.framework.AssertionFailedError: No tests found in com.mypkg.myapp.utils.MyCoolObjectTest at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176) at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555) at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1959)

Tests ran to completion.

+0

你可以發佈測試課嗎? –

回答

0

也許這將有用:

  • 的src /測試:只針對單元測試(沒有涉及機器人框架)。

  • src/androidTest:用於android儀器測試。

請參閱here對此有更好的解釋。

Example of instrumentation test(請檢查您的註解,例如@RunWith(AndroidJUnit4.class)@SmallTest@Test

我希望這將是對你有用。

(更新)

也許你忘了這對您的gradle這個(主模塊):

android { 
    defaultConfig { 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
} 

如果您已經使用咖啡,你必須添加一個依賴(請檢查鏈接在此之上「...儀器測試示例...「)

+0

我更新了進一步的報告「進度」 –

+0

@NouvelTravay請閱讀我的答案,也許是一個配置問題。 –

2

我只是有同樣的問題,這是我如何解決它:

  • 在Android Studio中轉到運行>編輯配置...
  • 在標題的Android JUnit的,選擇您的測試,並刪除它(減號按鈕)
  • 添加一個新的測試配置(加號按鈕),選擇Android的儀表測試
  • 設置以下選項:
  • 模塊:應用
  • 測試:類
  • 類:選擇還是這裏的儀器測試
  • 單擊確定

一切都應該工作現在進入你的班級。

+0

在我的情況下,有「第0步」,我不得不關閉並重新打開該項目。在第2步中,配置處於「未知」狀態。 – arekolek