2010-10-18 26 views
2

在爲我的android應用程序設置了所有單元測試用例之後,我現在也想做功能測試。但我遇到了一個問題。當我爲HTC Legend開發時,我現在只能使用最高2.1的Android平臺。但從某種程度上看,ActivityInstrumentationTestCase2將不起作用。Android 2.1中的ActivityInstrumentationTestCase2有問題嗎?

public SupplierSelectoinTest() { 
    super("com.sap.catalogue.activities", SupplierSelection.class); 
} 

這一段簡單的代碼給我下面的錯誤,當我嘗試運行測試:

java.lang.RuntimeException: Unable to resolve activity for: Intent { act=android.intent.action.MAIN flg=0x10000000 cmp=com.sap.catalogue.activities/com.sap.catalogue.activities.SupplierSelection } 
at android.app.Instrumentation.startActivitySync(Instrumentation.java:371) 
at android.test.InstrumentationTestCase.launchActivityWithIntent(InstrumentationTestCase.java:120) 
at android.test.InstrumentationTestCase.launchActivity(InstrumentationTestCase.java:98) 
at android.test.ActivityInstrumentationTestCase2.getActivity(ActivityInstrumentationTestCase2.java:87) 
at com.sap.catalogue.test.acceptance.SupplierSelectoinTest.setUp(SupplierSelectoinTest.java:27) 
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169) 
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154) 
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:430) 
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447) 

我經歷了所有的教程閱讀和所有我得到了它是,它應該工作但事實並非如此。無論如何,當我切換到android 2.2(現在沒有解決方案),我使用新的構造函數,我只需要交付活動類而不是pkg字符串,模擬器就可以運行測試而不會抱怨。

但是必須有一種方法才能在android 2.1中運行!

另外 這些是我的兩個Manifest.xml文件。第一個是應用程序本身。另一個是測試項目之一。

應用程序的Manifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.sap.catalogue" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".Catalogue" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

    <activity android:name=".activities.CategoryBrowser"></activity> 

<activity android:name=".activities.ProductDetails"></activity> 
<activity android:name=".activities.ProductSearch"></activity> 
<activity android:name=".activities.ProductView"></activity> 
<activity android:name=".activities.SupplierSelection"></activity> 

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

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
</manifest> 

測試的Manifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.sap.catalogue.test" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <application android:icon="@drawable/icon" android:label="@string/app_name"> 

    <uses-library android:name="android.test.runner" /> 
    </application> 
    <uses-sdk android:minSdkVersion="7" /> 
    <instrumentation android:targetPackage="com.sap.catalogue" android:name="android.test.InstrumentationTestRunner" /> 

</manifest> 

回答

6

使用頂級包名稱。

0

最可能的是,你沒有寫在manifest.xml活動。你會分享嗎?

編輯:

將此項添加到測試Manifest.xml中。我想,這會解決你的問題。

<activity android:name="com.sap.catalogue.activities.SupplierSelection"></activity> 
+0

你是指哪一個?測試項目或應用程序本身的Manifest.xml? – philgiese 2010-10-18 09:02:55

+0

我的意思是測試Manifest.xml。編輯。 – 2010-10-18 09:41:57

+0

不幸的是它沒有。即使Manifest.xml中有這行,它也給我提供了完全相同的錯誤。 – philgiese 2010-10-18 10:20:47

相關問題