Articles of robotium

使用Robotium – Android检查片段是否存在

是否有人知道使用Robotium检查片段是否存在的方法? 关心Rc

单击Robotium中的操作栏菜单项

我正在尝试在Robotium中运行一些自动化测试。 我的应用程序中有以下代码,用于设置选项菜单: 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 但是我的测试因错误而失败: View is null and therefore cannot be clicked. 我也试过使用下面的代码也失败了: solo.clickOnView(solo.getView(R.id.logoutmenu)); solo.clickOnMenuItem(“Share My Artists”);

如何使用Robotium / Android SDK找出哪个Activity在堆栈顶部?

我有一个Android应用程序的Robotium测试,它扩展了ActivityInstrumentationTestCase2。 测试在循环上运行,随机单击活动视图。 我想在每次迭代开始时validation哪个Activity当前是关注的。 这种行为对我很重要,因为其中一个按钮能够启动另一个Activity,在循环中进行进一步的操作是不可能的,因为它们引用了测试中的Activity(这是我停止Robotium测试的时候)。 我想要一个适用于任何Activity的通用解决方案,而无需更改onDestroy()方法。 当按下Home按钮时,此解决方案也必须有效。

如何选择在Robotium上单击哪个按钮以获得警报对话框?

我是Robotium的新手。 我使用对话框构建器创建了一个警告对话框,并使用show命令调用它。 我可以使用Robotium默认触发’ok’按钮,我无法对’cancel’按钮执行相同操作。 由于对话框与id没有关联,我不知道如何获取按钮的id。 这是我的对话框代码 alertDialogBuilder .setMessage(“Please enter only numbers without any spaces”) .setCancelable(true) .setNegativeButton(“Cancel”, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }) .setPositiveButton(“Ok”, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); 我用来触发Test Class中’ok’按钮的代码是 solo.getCurrentActivity().runOnUiThread(new Runnable() { public void run() { solo.getCurrentActivity().getCurrentFocus().requestFocus(); } }); this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER); […]

如何使用新的Gradle Build System在Android上进行集成测试?

我们的Android应用程序需要自动化测试,我们的团队正在使用Robotium为我们处理这个问题。 对于unit testing来说这不是问题,但我们也在编写一组端到端集成测试,以便不仅通过后端服务器来运行客户端。 我有一些测试可以做到这一点,但是如果可能的话,我想将它们与unit testing分开,以便我们的持续集成构建不需要运行实时服务器才能完成。 我们正在使用shiny的新Gradle构建系统。 我想知道我是否可以做一些像测试的风格或子项目,这取决于父APK以使它去。 我尝试用一​​个单独的项目完成这项工作,使用Robotium指令来测试无源调试APK,但它没有用。 也许是因为我在真正的硬件而不是模拟器。 即使已经安装了硬件加速,我的模拟器也运气不佳。 任何建议,或者我应该只是屏住呼吸并使用我的构建需要集成服务器在构建发生时可用?

测试运行失败:测试运行未能完成。 预计1次测试,收到0

尝试为我的应用启动JUnit测试(robotium)。 public class MainTest extends ActivityInstrumentationTestCase2 { private Solo solo; public MainTest() { super(“nix.android.contact”, MainActivity.class);// TODO Auto-generated constructor stub } protected void setUp() throws Exception { super.setUp(); solo = new Solo(getInstrumentation(), getActivity()); } public void AddContact() { solo.assertCurrentActivity(“main”, MainActivity.class); } } 表现 当我尝试运行测试时,进入控制台: 测试运行失败:测试运行未能完成。 预计1次测试,收到0 我尝试为其他应用程序(非常简单的应用程序)创建其他测试 – 工作。 谢谢

无法让Robotium在Android Studio中运行

我很难让Robotium在基于gradle的Android Studio上工作,我找不到办法 这是我的build.gradle文件 buildscript { dependencies { repositories { mavenCentral() mavenLocal() } classpath ‘com.android.tools.build:gradle:0.5.+’ } } apply plugin: ‘android’ repositories { mavenCentral() /* maven { url “https://oss.sonatype.org/content/repositories/snapshots” }*/ } sourceSets { testLocal { java.srcDir file(‘src/test/java’) resources.srcDir file(‘src/test/resources’) } } android { compileSdkVersion 17 buildToolsVersion “17.0.0” defaultConfig { minSdkVersion 15 targetSdkVersion 17 } sourceSets { instrumentTest.setRoot(‘src/test’) […]

Android Robotium NoClassDefFoundError

我只是想在Android JUnit测试中使用Robotium,但测试总是失败并出现错误: java.lang.NoClassDefFoundError:com.jayway.android.robotium.solo.Solo 抛出solo = new Solo(getInstrumentation(),getActivity()); 在setUp()方法中: protected void setUp() throws Exception { super.setUp(); solo = new Solo(getInstrumentation(), getActivity()); } 我在某处读到这可能与Android SDK修订版17有关,但我无法确认这一点,因为我第一次尝试使用SDK 17的Robotium。 Robotium jar正确添加到项目构建路径中。 有没有人遇到类似的问题? 问候K.

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测试中运行它时,它会崩溃应用程序。 有没有办法做到这一点? 在此先感谢您的帮助