Test della scatola nera di Android Studio con Robotium

Sto cercando di scrivere una prova di casella nera per un'applicazione di cui ho solo APK (senza codice sorgente) utilizzando Robotium. La documentazione è molto scarsa e limitata a Eclipse. Sto cercando di capire come scrivere questo tipo di test su Android Studio. Finora ho creato un nuovo progetto e ho modificato il file gradle per le dependencies

apply plugin: 'com.android.application' android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { applicationId "com.crysis.myautomatedtest" minSdkVersion 18 targetSdkVersion 22 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:appcompat-v7:22.2.1' compile 'com.jayway.android.robotium:robotium:5.4.1' compile 'com.jayway.android.robotium:robotium-solo:5.4.1' } 

poi scrivo i test e li inserisco nella cartella principale (dal momento che questo è un progetto di prova che prova un apk esterno)

  • aprire un'attività per modificare il contatto nell'adattatore di sincronizzazione
  • Android: crea un button di scorrimento con l'image e nessun text
  • Ble connessione multipla
  • Trasmissione su Wi-Fi Direct
  • Come fornire dati audio e video a MediaMux
  • Non posso individuare l'SDK Android sul mio computer
  •  package com.crysis.myautomatedtest; import android.test.ActivityInstrumentationTestCase2; import android.widget.EditText; import com.robotium.solo.Solo; public class RobotiumTest extends ActivityInstrumentationTestCase2 { private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.external.apptotest.LoginActivity"; private static Class launcherActivityClass; static { try { launcherActivityClass = Class .forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } } public RobotiumTest() throws ClassNotFoundException { super(launcherActivityClass); } private Solo mDevice; @Override public void setUp() throws Exception { mDevice = new Solo(getInstrumentation(), getActivity()); } @Override public void tearDown() throws Exception { mDevice.finishOpenedActivities(); } public void testLogin() { mDevice.clearEditText((EditText)mDevice.getView("id/username")); mDevice.enterText((EditText) mDevice.getView("id/username"), "Test"); assertTrue("Problem asserting text", mDevice.searchText("Test")); } } 

    È mia intenzione che per trovare l'applicazione devo modificare il manifesto e puntare a un targetPackage. Ho provato come questo

     <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.crysis.myautomatedtest"> <application android:allowBackup="true" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:theme="@style/AppTheme"> </application> <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.external.apptotest" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> </manifest> 

    Ma c'è un errore su quella linea che dice

    Imansible risolvere il simbolo "com.external.apptotest" (cioè il pacchetto dell'applicazione da verificare installato sul dispositivo) Validare i riferimenti delle risorse all'interno di un file XML Android

    Chiaramente mi manca qualcosa. Come faccio a gestire l'APK per testare nel test di black box? Come ho fatto un riferimento a cosa provare a Robotium?

  • Eclipse rileva lo stesso dispositivo più volte
  • Strano exception: non è ansible lanciare String in Boolean quando si utilizza getBoolean
  • Android Studio non riconosce il mio dispositivo
  • Disegno del materiale di Android sui dispositivi KitKat (e più bassi)
  • Android SeekBarPreference
  • Puoi avviare l'applicazione di camera nativa da un'applicazione Web Html 5?
  • One Solution collect form web for “Test della scatola nera di Android Studio con Robotium”

    È necessario specificare l'applicazione di prova nel file build.gradle. Nella sezione defaultConfig, aggiungere

     testApplicationId "com.external.apptotest" 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.