Запуск Android-тестового проекта от Launcher -- android поле с участием automation поле с участием black-box-testing пол Связанный проблема

Running android test project from launcher


0
vote

проблема

русский

У меня есть некоторые требования, где я должен запускать тестовый проект в любое время на моем устройстве, не подключая его к системе и запущена через Eclipse.

Я добавил немного <код> intent-filter на мой <код> AndroidManifest.xml , чтобы сделать тестовый проект, видимый на запусках, однако, он никогда не работает успешно и не может найти Целевой класс активности

Между тем, если я подключу устройство к системе, а из Eclipse выполнить <код> Run As Android Junit , он успешно работает без каких-либо исключения. Так что здесь не так? Я скучаю по какой-то концепции?

Ниже приведен <код> AndroidManifest.xml моего тестового приложения

 <код> <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"     package="com.org.search.test"     android:versionCode="1"     android:versionName="1.0" >      <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="18"/>      <instrumentation         android:name="android.test.InstrumentationTestRunner"         android:targetPackage="com.third.party.packageName" />      <application         android:allowBackup="true"         android:icon="@drawable/ic_launcher"         android:label="@string/app_name" >         <uses-library android:name="android.test.runner" />          <activity android:name="com.org.search.test.MyTestClass">             <intent-filter>                 <action android:name="android.intent.action.MAIN" />                 <category android:name="android.intent.category.LAUNCHER" />             </intent-filter>          </activity>         </application>  </manifest>   

А вот журнал исключения

 <код> java.lang.ExceptionInInitializerError     at java.lang.Class.newInstanceImpl(Native Method)     at java.lang.Class.newInstance(Class.java:1130)     at android.app.Instrumentation.newActivity(Instrumentation.java:1061)     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2183)     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2316)     at android.app.ActivityThread.access$600(ActivityThread.java:150)     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1298)     at android.os.Handler.dispatchMessage(Handler.java:99)     at android.os.Looper.loop(Looper.java:213)     at android.app.ActivityThread.main(ActivityThread.java:5225)     at java.lang.reflect.Method.invokeNative(Native Method)     at java.lang.reflect.Method.invoke(Method.java:525)     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)     at dalvik.system.NativeStart.main(Native Method)  Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException:      com.third.party.packageName.SearchActivity     at com.expedia.search.test.ExpediaHotelsScraper.<clinit>(ExpediaHotelsScraper.java:35)     ... 15 more  Caused by: java.lang.ClassNotFoundException: com.third.party.packageName.SearchActivity     at java.lang.Class.classForName(Native Method)     at java.lang.Class.forName(Class.java:204)     at java.lang.Class.forName(Class.java:169)     at com.org.search.test.MyTestClass.<clinit>(MyTestClass.java:32)     ... 15 more  Caused by: java.lang.NoClassDefFoundError: com/third/party/packageName/activity/SearchActivity     ... 19 more  Caused by: java.lang.ClassNotFoundException: Didn't find class      "com.third.party.packageName.SearchActivity" on path:      DexPathList[[zip file "/system/framework/android.test.runner.jar",      zip file "/data/app/com.org.search.test-1.apk"],     nativeLibraryDirectories=[/data/app-lib/com.org.search.test-1,      /vendor/lib, /system/lib]]   

также код тестового класса <код> MyTestClass.java

 <код> public class MyTestClass extends ActivityInstrumentationTestCase2 {       private static final String LAUNCH_ACTIVITY_NAME =          "com.third.party.packageName.activity.SearchActivity";      private Solo solo;      private static Class<?> splashActivityClass;     static {         try {             splashActivityClass = Class.forName(LAUNCH_ACTIVITY_NAME);         }         catch (ClassNotFoundException e) {             throw new RuntimeException(e);         }     }      public MyTestClass() throws ClassNotFoundException {         super(splashActivityClass);     }      @Override     protected void setUp() throws Exception {         solo = new Solo(getInstrumentation(), getActivity());     }      public void testAllCountries() {             //my test goes here     }   

Я новичок в Android автоматизации. Пожалуйста, помогите мне понять концепцию, если пробую что-то неосуществимо.

Английский оригинал

I have some requirements where I should run the test project anytime on my device, without connecting it to system and running through eclipse.

I added some intent-filter to my AndroidManifest.xml to make the test project visible on the launcher, however, it never runs successfully and is not able to find the target activity class

Meanwhile, If I connect the device to system, and from eclipse perform Run As Android Junit , it runs successfully without any exception. So what is wrong here? Am i missing some concept ?

Below is the AndroidManifest.xml of my test application

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"     package="com.org.search.test"     android:versionCode="1"     android:versionName="1.0" >      <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="18"/>      <instrumentation         android:name="android.test.InstrumentationTestRunner"         android:targetPackage="com.third.party.packageName" />      <application         android:allowBackup="true"         android:icon="@drawable/ic_launcher"         android:label="@string/app_name" >         <uses-library android:name="android.test.runner" />          <activity android:name="com.org.search.test.MyTestClass">             <intent-filter>                 <action android:name="android.intent.action.MAIN" />                 <category android:name="android.intent.category.LAUNCHER" />             </intent-filter>          </activity>         </application>  </manifest> 

And here is the exception log

java.lang.ExceptionInInitializerError     at java.lang.Class.newInstanceImpl(Native Method)     at java.lang.Class.newInstance(Class.java:1130)     at android.app.Instrumentation.newActivity(Instrumentation.java:1061)     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2183)     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2316)     at android.app.ActivityThread.access$600(ActivityThread.java:150)     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1298)     at android.os.Handler.dispatchMessage(Handler.java:99)     at android.os.Looper.loop(Looper.java:213)     at android.app.ActivityThread.main(ActivityThread.java:5225)     at java.lang.reflect.Method.invokeNative(Native Method)     at java.lang.reflect.Method.invoke(Method.java:525)     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)     at dalvik.system.NativeStart.main(Native Method)  Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException:      com.third.party.packageName.SearchActivity     at com.expedia.search.test.ExpediaHotelsScraper.<clinit>(ExpediaHotelsScraper.java:35)     ... 15 more  Caused by: java.lang.ClassNotFoundException: com.third.party.packageName.SearchActivity     at java.lang.Class.classForName(Native Method)     at java.lang.Class.forName(Class.java:204)     at java.lang.Class.forName(Class.java:169)     at com.org.search.test.MyTestClass.<clinit>(MyTestClass.java:32)     ... 15 more  Caused by: java.lang.NoClassDefFoundError: com/third/party/packageName/activity/SearchActivity     ... 19 more  Caused by: java.lang.ClassNotFoundException: Didn't find class      "com.third.party.packageName.SearchActivity" on path:      DexPathList[[zip file "/system/framework/android.test.runner.jar",      zip file "/data/app/com.org.search.test-1.apk"],     nativeLibraryDirectories=[/data/app-lib/com.org.search.test-1,      /vendor/lib, /system/lib]] 

Also the test class code MyTestClass.java

public class MyTestClass extends ActivityInstrumentationTestCase2 {       private static final String LAUNCH_ACTIVITY_NAME =          "com.third.party.packageName.activity.SearchActivity";      private Solo solo;      private static Class<?> splashActivityClass;     static {         try {             splashActivityClass = Class.forName(LAUNCH_ACTIVITY_NAME);         }         catch (ClassNotFoundException e) {             throw new RuntimeException(e);         }     }      public MyTestClass() throws ClassNotFoundException {         super(splashActivityClass);     }      @Override     protected void setUp() throws Exception {         solo = new Solo(getInstrumentation(), getActivity());     }      public void testAllCountries() {             //my test goes here     } 

I am new to android automation. Please help me understand the concept if am trying something infeasible.

</div
        

Список ответов

0
 
vote

Вы должны прочитать Android тестирование: бегущие тесты от кода , который поможет вам в достижении вашей цели.

 

You should read Android Testing: running tests from code which would help you in achieving your objective.

</div
 
 
       
       

Связанный проблема

16  Обычная задача Android (эквивалент Cronjob)  ( Android regular task cronjob equivalent ) 
Последний раз, когда этот вопрос был задан (другим пользователем), ответ ответа был: Если это работает в беговой активности, вы можете использовать таймер ...

0  Android полноэкранный  ( Android fullscreen ) 
Я разрабатываю приложение Android, используя Eclipse. Я заметил одно и то это приложение не показывает на полном экране. Есть пустые черные пространства вокру...

4  Проблемы о переполнении размера кучи со звуковыми клипами  ( Heap size overflow issues with sound clips ) 
Я создаю приложение для Android, которое включает несколько коротких звуковых зажимов. На данный момент я использую SoundPool для загрузки моих звуковых кли...

0  Прокрутите вверх относительной макета при прокрутке вверх по просмотру  ( Scroll up relative layout when scrolling up listview ) 
Я создаю приложение. и пользовательская информация отображается в относительной макете. При относительной макете - это список с элементами, создаваемыми польз...

64  Uninstall adb не удалось  ( Adb uninstall failed ) 
Я пишу некоторые образцы приложений. После отладка этих приложений я не вижу кнопку удаления в управлении приложениями моего устройства. Когда я делаю ADB у...

-3  Как прекратить воспроизведение сервиса в Android  ( How to stop playing service in android ) 
У меня есть вопрос о сервисе и трансляции в Android.I Создайте страницу будильника, которые используя класс тревоги Reciver (он расширяет класс трансляции) дл...

0  Случайные 7-значные номера на andich android  ( Random 7 digit numbers on click android ) 
Я хотел бы, чтобы вы помогли мне в этом коде. Я могу генерировать случайные числа, но не в точном количестве. Вопрос: Как я могу генерировать 7 случайных ци...

1  Можно ли построить ящики Edittext, как ListView?  ( Is it possible to build edittext boxes like a listview ) 
Так что в основном то, что я хотел бы сделать, это уметь создать список редактируемых полей, используя ящики Edittext. Однако вместо того, чтобы войти в мой X...

0  Swiperefresh ListView, обновления, но не то, как вы ожидаете  ( Swiperefresh listview updates but not how you would expect ) 
У меня есть список, который использует функцию SwipeFresh, и я столкнулся с странной проблемой. Когда я проводлю вниз, я вижу анимацию и мою информацию (обнов...

76  Как настроить пункт и элемент текстового цвета внутри навигацииВизнес?  ( How to customize item background and item text color inside navigationview ) 
Я хочу достичь чего-то вроде этого показано в Документы дизайна материалов < / a>. <Код> colorControlHighlight используется для фона на проверенных элемен...

1  Установка поля _ID с использованием SQLite & ContentProvider в Android  ( Setting the id field using sqlite contentprovider in android ) 
Я пытаюсь настроить ContentProvider в приложении Android, чтобы держать информацию о домах. Я хотел бы иметь возможность установить поле _id, чтобы быть таким...

0  Как добавить анимацию на фоне в живых обоях в андроид?  ( How to add animation on background in live wallpaper in android ) 
Я хочу добавить прикосновение эффект с анимацией в живых обоях: <код> Bitmap img = BitmapFactory.decodeResource(getResources(),R.drawable.heart); float x = ...

0  Новое развитие приложений с использованием Cordova и Ionic  ( Native app development using cordova and ionic ) 
Как сохранить процесс или сервис всегда запущены даже после того, как приложение будет убито пользователем, похожее на секундомер, который будет запущен даже ...

0  Async HTTP-запрос и Arduino  ( Async http request and arduino ) 
Я разрабатываю приложение для Android, которое будет общаться с Arduino Uno, хотя WiFi. Arduino уже запрограммирован, чтобы включить цифровой порт 12, когда я...

0  MediaControllerCompat - Java.lang.illegalargumentException: плохое направление 3  ( Mediacontrollercompat java lang illegalargumentexception bad direction 3 ) 
Я выдаю простую команду mediedcontrollerCompat: Controller.adjustVolume (-1, 0); еще мое приложение FCS с ... <код> java.lang.IllegalArgumentException: ...




© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.