可以将android ActivityInstrumentationTestCase2用于monodroid应用吗?

时间:2011-10-20 12:32:54

标签: android xamarin.android

我正在尝试使用Robotium来驱动一个应用程序编写的mon monroid,似乎通过测试应用程序调用应用程序时出现问题。因为看起来机器人使用android ActivityInstrumentationTestCase2初始化测试和目标应用程序以及它看起来如何被包和指定的主要活动混淆了... 我不确定,但我觉得这可能是由于java中的包结构不同以及如何在c#中使用命名空间..有没有人在针对monodroid应用程序尝试了robotium或nativedriver?

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 :(得分:0)

我不知道robotium,但团队成员一直在研究本机驱动程序,本机驱动程序导致Android应用程序的Mono中断,因为它在Mono之前调用了Java native方法的调用有机会初始化。

我们正在努力修复,但我不知道它何时完成并可供公众使用。 : - (

对于反映在C#类型上的Java,目前还不可能。 Java只能通过为每个Java.Lang.Object子类生成的Android Callable Wrappers调用C#代码,并为每个实现的Java接口和任何被覆盖的基类方法生成方法声明......