在Robotium测试中使用“Debug as Android Junit Test”调试应用程序

时间:2014-02-19 23:14:00

标签: android debugging robotium

我是Android和Robotium的新手 我无法弄清楚当在测试中的应用程序代码中放置断点时,Robotium测试类上的“Debug as Android Junit Test”无法正常工作。
当我在Robotium测试类上说“Debug as Android Junit Test”并且只在我的Robotium测试类中有断点,但不在我的应用程序类中时,那么一切正常。 另一方面,当在应用程序代码中放置断点时,然后执行Robotium测试行,该行调用具有断点设置的应用程序代码(在我的情况下按下按钮,断点在按钮onClick()方法内),不在那个断点上停下来,而不是在它上面跑 应用程序在我的AVD上被冻结,当让Robotium测试继续进行时,我得到测试失败:

junit.framework.AssertionFailedError: CheckBox is not found!
at com.robotium.solo.Waiter.waitForAndGetView(Waiter.java:536)
at com.robotium.solo.Checker.isButtonChecked(Checker.java:46)
at com.robotium.solo.Solo.isCheckBoxChecked(Solo.java:2145)
at example.test.TestMe.testRun(TestMe.java:88)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:192)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)

我猜它正在发生,因为应用程序在某些活动上挂起avd并且Robotium测试继续进行测试,但是无法按下它预期在那里的屏幕上的复选框。发生这种情况是因为应用程序挂起在AVD上并且没有呈现预期的UI或者调用了后面的某个Activity。

我也尝试在我的应用程序中添加Mannifest.xml文件

<application
    ...
    android:debuggable="true" >

但它没有帮助。

非常感谢任何有关如何解决此问题的信息和指导 提前谢谢你,
mismas

编辑: 发现将断点放入按钮onClick()方法之外的应用程序代码中(例如在Activity的onCreate()方法中包含按钮),而不是我可以正常调试的东西。
我不明白为什么会这样?为什么OnClickListener按钮的onClick()方法会给它带来麻烦呢? 有人有想法吗? 谢谢!

0 个答案:

没有答案