2013-03-11 151 views
0

我目前正在爲我們自己的設備處理一些CTS問題。在我看來,如果我們只能從Eclipse運行一個CTS測試用例,那麼對於調試CTS問題會非常有幫助。 例如,我已創建一個Android測試項目,清單文件:是否可以從Eclipse運行單個Android CTS測試用例?

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

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

    <instrumentation 
     android:name="android.test.InstrumentationTestRunner" 
     android:targetPackage="android.content.pm" /> 

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

</manifest> 

和源代碼:

package android.content.pm.cts; 

import android.content.Intent; 
import android.content.pm.PackageManager; 
import android.content.pm.ResolveInfo; 
import android.content.pm.ResolveInfo.DisplayNameComparator; 
import android.test.AndroidTestCase; 

public class ResolveInfo_DisplayNameComparatorTest extends AndroidTestCase { 
    private static final String MAIN_ACTION_NAME = "android.intent.action.MAIN"; 
    private static final String SERVICE_NAME = "android.content.pm.cts.activity.PMTEST_SERVICE"; 


    public void testDisplayNameComparator() { 
     PackageManager pm = getContext().getPackageManager(); 
     DisplayNameComparator dnc = new DisplayNameComparator(pm); 

     Intent intent = new Intent(MAIN_ACTION_NAME); 
     ResolveInfo activityInfo = pm.resolveActivity(intent, 0); 

     intent = new Intent(SERVICE_NAME); 
     ResolveInfo serviceInfo = pm.resolveService(intent, PackageManager.GET_RESOLVED_FILTER); 

     assertTrue(dnc.compare(activityInfo, serviceInfo) < 0); 
     assertTrue(dnc.compare(activityInfo, activityInfo) == 0); 
     assertTrue(dnc.compare(serviceInfo, activityInfo) > 0); 
    } 
} 

當我在項目點擊右鍵,選擇「運行方式的Android的JUnit測試「它只是報告:測試運行失敗:無法找到儀表目標包:android.content.pm

我知道我可能從一開始就完全錯誤。那麼有誰能爲我指出一個正確的出路嗎? 非常感謝!

回答

0

你所看到的錯誤是因爲android操作系統找不到安裝包「android.content.pm」的應用程序,而eclipse不知道該項目爲了安裝它,安裝你想要的應用程序來測試(並且檢查它的包實際上是android.content.pm,它可能不是因爲這是一個系統包,並且因爲您的調試簽名不相同,所以您將無法對其進行測試)

+0

是,在這些日子過後,我認爲你的解釋是相當合理的。謝謝。 – Robin 2013-03-19 04:46:27

相關問題