2010-10-18 14 views
2

Après avoir configuré tous les cas de test unitaires pour mon application android, je veux maintenant faire des tests fonctionnels. Mais je rencontre un problème. Comme je suis en train de développer pour le HTC Legend, je peux, à l'heure actuelle, seulement utiliser des plates-formes Android jusqu'à 2,1. Mais d'une certaine manière, il semble que le ActivityInstrumentationTestCase2 ne fonctionnera pas.Y a-t-il des problèmes avec ActivityInstrumentationTestCase2 dans Android 2.1?

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

Ce simple morceau de code me donne l'erreur suivante, lorsque je tente de lancer le test:

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) 

J'ai lu tous les tutoriels et tout ce que je sors de c'est qu'il devrait mais ça ne marche pas. Quoi qu'il en soit, quand je passe à Android 2.2 (ce qui n'est pas une solution pour l'instant) et j'utilise le nouveau constructeur, où j'ai seulement besoin de remettre la classe d'activité et non la chaîne pkg l'émulateur va exécuter les tests sans se plaindre.

Mais il doit y avoir un moyen de le faire tourner dans Android 2.1!

En outre Voici mes deux fichiers Manifest.xml. Le premier, est celui de l'application elle-même. L'autre est celui du projet de test.

application 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> 

test 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> 

Répondre

6

Utilisez le nom du package de niveau supérieur.

0

Très probablement, vous n'avez pas écrire l'activité dans le Manifest.xml. Voulez-vous le partager aussi?

Edit:

Ajouter ceci au Manifest.xml test. Je pense que cela va résoudre votre problème.

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

Lequel voulez-vous dire? Le fichier Manifest.xml du projet de test ou de l'application elle-même? – philgiese

+0

Je voulais dire test Manifest.xml. édité. –

+0

Malheureusement, ce n'est pas le cas. Même avec cette ligne dans le Manifest.xml cela me donne exactement la même erreur. – philgiese