2012-10-23 96 views
6

我有一個單獨的測試項目在Eclipse已經在這兩個命令行和Eclipse一段時間運行成功。在使用Jenkins運行我的測試時,我遇到了標準InstrumentationTestRunner不以Jenkins支持的xml格式輸出的問題。我在互聯網上閱讀過使用自定義InstrumentationTestRunner。這可以在使用ADB的命令行中工作,但在以Android Test Case運行時在Eclipse中失敗。使用自定義InstrumentationTestRunner導致錯誤

我已經下載了一個自定義的儀器測試運行(com.neenbedankt.android.test),並把它添加到AndroidManifest這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.testedapplication.test" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="7" /> 

    <instrumentation 
     android:name="com.neenbedankt.android.test.InstrumentationTestRunner" 
     android:targetPackage="com.testedapplication" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <uses-library android:name="android.test.runner" /> 
    </application>  
</manifest> 

這裏是我在Eclipse中出現錯誤:

[測試項目]未正確配置運行測試: 用於儀表android.test.InstrumentationTestRunner在AndroidManifest.xml中targetPackage屬性找不到!

你可以看到,我已經設置targetPackage那裏,所以我不知道還有什麼我能做什麼?

回答

12

在您的AndroidManifest.xml中添加兩個工具。

<instrumentation 
    android:name="android.test.InstrumentationTestRunner" 
    android:targetPackage="com.example.myapp" /> 

<instrumentation 
    android:name=".MyRunner" 
    android:targetPackage="com.example.myapp" /> 

然後去包資源管理器 - > $(測試Prject $) - >運行方式 - >運行配置 - > Android的JUnit測試 - > $(測試項目) - >儀表跑步者並選擇你的跑步者。

+2

我再次嘗試,似乎android.test.InstrumentationTestRunner是不需要的。你需要做的只是改變Instrumentation Runner設置。 –

+2

男人,我喜歡stackoverflow。 –

0

由於我看不到您的整個項目設置,這裏有一些我會嘗試的檢查清單。

  1. 您是否在Eclipse中有單獨的測試項目?上述檢測程序塊是否在源項目的清單文件或測試項目的清單文件中?

  2. 是否包含< uses-library android:name =「android.test.runner」/ > block?

  3. 你把測試項目的儀器塊<應用>塊外面和<使用庫測試項目的應用程序塊內>塊?

  4. 你嘗試通過「新建項目 - > Android的測試項目」在Eclipse中創建一個測試項目,並添加源代碼後,只是改變了測試類呢?如果你不改變儀器類,它是否工作?

  5. 你做「 - > Android的JUnit測試運行方式」運行Eclipse中的測試?

如果你已經做了所有這些,我認爲粘貼你的整個AndroidManifest文件有助於澄清一點,以及是否有2個獨立的項目。

+0

我編輯了我的原始評論來回答你的問題。在切換到自定義測試運行器之前,我的測試可以在命令行和Eclipse中使用。在原始問題中查看我的新編輯。謝謝。 – SpecialEd

0

啊到目前爲止我已經能夠得到它同時具有android.test.InstrumentationRunner亞軍,並在清單文件中描述的客戶測試運行工作。我似乎從Eclipse運行將使用android.test.InstrumentationRunner並從命令行運行將使用自定義測試運行器,如果它在螞蟻腳本中的設置。

1

爲了讓eclipse默認選擇自定義運行程序,當以/ android junit運行時 - 只需在清單文件中切換順序即可。確保你的第一個

<instrumentation 
android:name="*.Custom.TestRunner" 
android:targetPackage="com.*" /> 

<instrumentation 
android:name="*.InstrumentationTestRunner" 
android:targetPackage="com.*" /> 
相關問題