Articles of robotium

Android集成测试:Robotium还是UIAutomator?

我想为Android应用程序设置集成测试,我想知道什么是更好的: Robotium或最近推出的uiautomator 。 我之前有使用Robotium的经验,这个框架对于集成测试来说非常棒。 但最近推出的uiautomator看起来也不错。 目前我看到uiautomator有几个限制: 没有xml测试报告 没有兼容性(仅适用于4.1+) 没有Eclipse支持,这意味着很多控制台工作 另一方面,此工具允许您摆脱测试中的应用程序沙箱,并且它独立于程序包,因此可以一起测试多个应用程序。 另外我知道用Maven,Robotium和像jenkins这样的CI进行设置是相当容易的,但是我不确定uiautomator是否那么容易。 我想问一下uiautomator还有其他任何陷阱吗? 或者最好坚持使用Robotium?

如何旋转活动,我的意思是:使用Espresso改变屏幕方向?

我已经决定使用Google的Espresso进行应用程序测试的测试标准之一是: 测试应在屏幕方向旋转后保持活动状态 使用Espresso时如何旋转屏幕? 我尝试了以下Robotium代码(是的,我在我的Espresso测试中放置了Robotium代码,所以起诉我) solo.setActivityOrientation(solo.LANDSCAPE); solo.setActivityOrientation(solo.PORTRAIT); 但是当我在Espresso测试中运行它时,它会崩溃应用程序。 有没有办法做到这一点? 在此先感谢您的帮助

如何并行运行独立的Robotium UI测试?

我正在使用Jenkins进行Android持续集成。 我有一些独立的,独立的Robotium UI测试,目前需要12分钟才能对单个模拟器进行串行运行。 任何人都可以建议一个好的方法来并行运行它们只需要6分钟(或更短)吗? 我知道在多个设备/模拟器上并行运行完整测试套件的各种方法,例如,请参阅Jenkins Android Emulator插件, Spoon或AppThwack等云测试公司的多配置(矩阵)作业部分。 我知道如何通过使用JUnit注释来运行我的测试的特定子集,或者显然Spoon支持类似的function(请参阅我的问题 )。 我现在正在使用Spoon来运行我的完整测试套件(主要是为了利用带有屏幕截图的可爱HTML输出)。 如果有人提供关于拆分测试并将其并行运行的最佳方法的提示,那就太棒了。 我假设我可以通过将测试分成两个独立的CI作业来实现这一点,但是维护两个单独的作业并结合结果听起来很痛苦。

什么unit testing,在Android应用程序中

我的应用程序主要是GUI,它们可以与服务器进行大部分信息通信。 如果出现任何问题,通常会在网络调用中或对JSON对象做出错误的假设。 unit testing不适合这些网络相关和I / O相关任务,否则它们不会被称为unit testing。 所以我试图在我的案例中收集unit testing的要点。 为什么我会测试Android按钮是否可以单击或EditText可以看到我键入的内容? 我只是不明白实现这些繁琐的测试的效用 private void initElements(){ placeButton = (Button) findViewById(R.id.currplace); placeButton.setText(MainActivity.this.getString(R.string.findingLocation)); placeButton.setEnabled(false); selectplaceLayout = (LinearLayout)findViewById(R.id.selectplaceLayout); selectplaceLayout.setVisibility(View.GONE); splash = (RelativeLayout)findViewById(R.id.splashbg); infoLayout = (LinearLayout)findViewById(R.id.infoLayout); } 如果以上方法通过,我的所有活动都在onCreate中运行,那么我知道应用程序有效。 对此进行unit testing将是一个冗余耗时的事情。 耗时,因为我不熟悉jUnit和Android测试框架中的所有方法。 所以,长话短说,重点是什么? 有什么特别的方式我应该考虑这些测试吗? 到目前为止,我所看到的所有示例和教程仅仅讨论了最简单的示例,为了简洁起见,但我无法想到在主要的客户端 – 服务器应用程序中进行unit testing的任何实际用途。 通过访问我已经知道并声明并初始化的android视图,我期望发现什么? 我必须以过于有限的方式思考这个问题 所以,洞察力赞赏

Android和Robotium – 期望额外的测试活动?

在我看来,robotium的设计方式是一次测试1个Activity而不是整个应用程序。 所以我的问题是如何测试一个期望将额外传递给它的活动? 另外我的意思是intent.putExtra(“Something”, object);

如何在Android Studio中使用Robotium?

Robotium是一个Android测试自动化框架,完全支持本机和混合应用程序。 既然Android Studio是Android开发的事实上的 IDE,我有兴趣尝试使用Android Studio。 但是,我找不到设置它的方法。 如何设置和使用Robotium来测试Android Studio?

使用Robotium检查片段的存在 – Android

有没有人知道一种方法来检查使用Robotium的片段的存在? 问候Rc

点击Robotium中的操作栏菜单项

我试图在Robotium中运行一些自动化testing。 我在我的应用程序中设置了一个选项菜单中的以下代码: public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) { com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater(); inflater.inflate(R.layout.logoutmenu, menu); return super.onCreateOptionsMenu(menu); } 我尝试点击Robotium中的菜单,使用代码: solo.sendKey(Solo.MENU); solo.clickOnView(solo.getView(R.id.share)); //share is the id of the menu item 但是我的testing因错误而失败: View is null and therefore cannot be clicked. 我也尝试使用下面的代码也失败了: solo.clickOnView(solo.getView(R.id.logoutmenu)); solo.clickOnMenuItem("Share My Artists");

为什么在ActionBarActivity上运行我的testing时会得到一个NoClassDefFoundError?

所以我使用的是Robotium,我的testing课程扩展了ActivityInstrumentationTestCase2类。 我已经在我的主项目中导入了v7支持库,并且还在testing项目中导入了库。 现在我不明白的是,testing类正在工作,当我改变被testing的类来扩展Activity但是当我改变它到ActionBarActivity它返回一个NoClassDefFoundError 。 我错过了什么? 这是我得到的日志 04-11 21:32:16.551: E/dalvikvm(23925): Could not find class 'com.example.project.ActivityClass', referenced from method com.example.project.tests.ActivityClass.<init>

切换到AndroidJUnitRunner后,现有Android UItesting停止工作

我们在相机function方面进行了一些UItesting,在我们将其从InstrumentationTestRunner切换到AndroidJUnitRunner作为迁移到Espresso / JUnit4的一部分,当我们调用getActivity()时,由于频繁的RuntimeException,我们不能再可靠地运行现有的testing。 : java.lang.RuntimeException: Could not launch intent Intent { flg=0x14000000 cmp=com.cookbrite.dev/com.cookbrite.ui.ReceiptCaptureActivity (has extras) } within 45 seconds. Perhaps the main thread has not gone idle within a reasonable amount of time? There could be an animation or something constantly repainting the screen. Or the activity is doing network calls on creation? See the […]