Можно ли использовать Android ActivityInstrumentationTestCase2 без приложения с монодроидом? - PullRequest
1 голос
/ 20 октября 2011

Я пытаюсь использовать Robotium для управления приложением, написанным на монодроиде, и кажется, что есть проблема при вызове приложения через тестовое приложение. Похоже, что robotium инициализирует тест и целевое приложение, используя android ActivityInstrumentationTestCase2 и кое-что, как кажется, что он запутывается пакетом и указанным основным действием ... я не уверен, но я чувствую, что это может быть связано с различием в структуре пакета в java и как пространство имен используется в c # ...

I/dalvikvm(  487): DALVIK THREADS:
I/dalvikvm(  487): "main" prio=5 tid=1 RUNNABLE
I/dalvikvm(  487):   | group="main" sCount=0 dsCount=0 s=N obj=0x4001d8e0 self=0xccb0
I/dalvikvm(  487):   | sysTid=487 nice=0 sched=0/0 cgrp=default handle=-1345026008
I/dalvikvm(  487):   | schedstat=( 3609087971 361797990 223 )
I/dalvikvm(  487):   at java.lang.Class.getDeclaredConstructors(Native Method)
I/dalvikvm(  487):   at java.lang.Class.getConstructors(Class.java:499)
I/dalvikvm(  487):   at    android.test.suitebuilder.TestGrouping$TestCasePredicate.hasValidConstructor(TestGrouping.java:226)
I/dalvikvm(  487):   at android.test.suitebuilder.TestGrouping$TestCasePredicate.apply(TestGrouping.java:215)
I/dalvikvm(  487):   at android.test.suitebuilder.TestGrouping$TestCasePredicate.apply(TestGrouping.java:211)
I/dalvikvm(  487):   at android.test.suitebuilder.TestGrouping.select(TestGrouping.java:170)
I/dalvikvm(  487):   at android.test.suitebuilder.TestGrouping.selectTestClasses(TestGrouping.java:160)
I/dalvikvm(  487):   at android.test.suitebuilder.TestGrouping.testCaseClassesInPackage(TestGrouping.java:154)
I/dalvikvm(  487):   at android.test.suitebuilder.TestGrouping.addPackagesRecursive(TestGrouping.java:115)
I/dalvikvm(  487):   at android.test.suitebuilder.TestSuiteBuilder.includePackages(TestSuiteBuilder.java:103)
I/dalvikvm(  487):   at android.test.InstrumentationTestRunner.onCreate(InstrumentationTestRunner.java:360)
I/dalvikvm(  487):   at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4218)
I/dalvikvm(  487):   at android.app.ActivityThread.access$3000(ActivityThread.java:125)
I/dalvikvm(  487):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2071)
I/dalvikvm(  487):   at android.os.Handler.dispatchMessage(Handler.java:99)
I/dalvikvm(  487):   at android.os.Looper.loop(Looper.java:123)
I/dalvikvm(  487):   at android.app.ActivityThread.main(ActivityThread.java:4627)
I/dalvikvm(  487):   at java.lang.reflect.Method.invokeNative(Native Method)
I/dalvikvm(  487):   at java.lang.reflect.Method.invoke(Method.java:521)
I/dalvikvm(  487):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
I/dalvikvm(  487):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
I/dalvikvm(  487):   at dalvik.system.NativeStart.main(Native Method)

Полагаю, вопрос должен быть о том, может ли класс Java использовать отражение в классе C #?

более важно ... Есть ли реализация некоторой вещи, такой как Android ActivityInstrumentationTestCase2, которая поддерживает инструментарий Android с моно дроидом? или есть способ вызвать приложение моно дроида, используя тестовое приложение, которое использует ActivityInstrumentationTestCase2?

1 Ответ

0 голосов
/ 24 октября 2011

Я не знаю о robotium, но член команды изучал собственный драйвер, а собственный драйвер вызывает сбой приложений Mono для Android, поскольку он вызывает вызов метода Java native до того, как Monoвозможность инициализации.

Мы работаем над исправлением, но я не знаю, когда оно будет закончено и станет доступным для общего пользования.: - (

Что касается Java, отражающего тип C #, в настоящее время это невозможно. Java может вызывать код C # только через Android Callable Wrappers , которые создаются для каждого Java.Lang.Objectподкласс, и генерирует объявления методов для каждого реализуемого интерфейса Java и любых переопределенных методов базового класса ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...