J'ai mon étui d'essai uautomator:
public class clickTest extends UiAutomatorTestCase { public void myTest() throws UiObjectNotFoundException { ... //Is it possible to get Context or Activity here? } }
5 Réponses :
Vous pouvez utiliser le packagemanager en exécutant la commande directement à partir de votre cas d'essai Uiautomator: Toutefois, si vous avez besoin d'un accès au contexte, d'activité, etc. Il est peut-être préférable d'utiliser l'instrumentation d'AndroidTestrunner , regardez à travers l'excellente documentation Android pour plus d'informations.
http://developer.android.com/tools/testing/activity_test.html p> p>
Ceci est possible avec uautomator 2.0 ou plus tard. p>
La version originale de Uiautomator Ran en tant que programme Shell ( uautomator 2.0 est basé sur Instrumentation Android . Les tests sont compilés aux APK et exécutent un processus d'application (via Voir le Uautomator Docs pour plus de détails. p> ADB Shell Uainutomator Runtest ... code>). Comme il ne s'agissait pas d'une application Android, il n'a pas eu accès à l'objet contextuel de l'application. P>
ADB Shell AM Instrument ... code>). Si votre test s'étend InstrumentationTestCase , vous pouvez utiliser
getinstrumentalation () .getContext () code> pour obtenir un contexte. p>
@RunWith(AndroidJUnit4.class) @SdkSuppress(minSdkVersion = 18) public class MyTest { @Test public void test1() { Context context = InstrumentationRegistry.getContext(); } }
Celui-ci fonctionne -
InstrumentationRegistry.getInstrumentation().targetContext
en 2021 c'est la réponse: p>
Pour obtenir un contexte pour que l'application cible soit instrumentée. Voir les détails ici :
Pour obtenir le contexte du package de l'instrumentation. Voir les détails ici :
InstrumentationRégieR.GetStrumentation (). GetTargetContext (); Code> P>
InstrumentationRegistry.getstrumentation (). GetContext (); Code> P>
Vous ne pouvez certainement pas avoir accès à l'activité
code>, car il s'exécute dans un processus séparé. Je ne suis pas conscient que vous pouvez obtenir un
contexte code>, encore moins
packagemanager code>.
Merci, je pensais la même chose, je pose la question juste de m'assurer :), la raison pour laquelle je veux accéder au contexte, c'est que je voudrais utiliser le packagemanager dans mon test. Voyons que leurs autres personnes en savent plus
Voulez-vous déclarer et instancier le clicktext?